Take Home Exercise 1

Author

Arjun Singh

Published

September 2, 2024

Modified

September 19, 2024

1 Introduction

According to the World Health Organisation (WHO), road traffic accidents cause approximately 1.19 million deaths annually and result in between 20 and 50 million people with being down with non-fatal injuries. Over half of all road traffic deaths occur among vulnerable road users, such as pedestrians, cyclists and motorcyclists.

Road traffic injuries are the leading cause of death for children and young adults aged 5–29 while two-thirds of road traffic fatalities occur among people of working age (18–59 years). 9 in 10 fatalities on the roads occur in low and middle-income countries, even though these countries have only around 60% of the world’s vehicles.

In addition to the human suffering caused by road traffic injuries, they also inflict a heavy economic burden on victims and their families, both through treatment costs for the injured and through loss of productivity of those killed or disabled. More broadly, road traffic injuries have a serious impact on national economies, costing countries 3% of their annual GDP.

Thailand’s roads are the deadliest in Southeast Asia and among the worst in the world, according to the World Health Organisation. About 20,000 people die in road accidents each year, or about 56 deaths a day (WHO).

Between 2014 and 2021, Thailand experienced a notable increase in accidents. Specifically, 19% of all accidents in Thailand occurred on the national highways, which constituted the primary public thoroughfares connecting various regions, provinces, districts, and significant locations within a comprehensive network.

Within the broader context of accidents across the country, there existed a considerable 66% likelihood of encountering accident-prone zones, often termed ‘black spots,’ distributed as follows: 66% on straight road segments, 13% at curves, 6% at median points of cross-shaped intersections, 5% at T-shaped intersections and Y-shaped intersections, 3% at cross-shaped intersections, 2% on bridges, and 2% on steep slopes, respectively.

1.1 Objectives

For the most part, road accidents can be attributed to two key factors- behavioral factors. such as driving skill, and environmental factors, such as heavy rain.

For this exercise, we will implement Spatial and Spatio-Temporal Point Pattern Analysis methods to discover the underlying factors behind the accidents in the Bangkok Metropolitan Region.

1.2 Data and Packages

For the purpose of this study, we will use the following three data-frames.

You can click the link embedded on each of these data-frames to learn more.

We will use the following R packages for our analysis:

  • sf, a relatively new R package specially designed to import, manage and process vector-based geospatial data in R.

  • spatstat, which has a wide range of useful functions for point pattern analysis. In this hands-on exercise, it will be used to perform 1st- and 2nd-order spatial point patterns analysis and derive kernel density estimation (KDE) layer.

  • raster, which reads, writes, manipulates, analyses and model of gridded spatial data (i.e. raster). In this hands-on exercise, it will be used to convert image output generate by spatstat into raster format.

  • tidyverse simplifies spatial analysis by offering a consistent and efficient framework that facilitates working with spatial data.

  • tmap which provides functions for plotting cartographic quality static point patterns maps or interactive maps by using leaflet API.

  • spNetwork which provides functions to perform Spatial Point Patterns Analysis such as kernel density estimation (KDE) and K-function on network. It also can be used to build spatial matrices (‘listw’ objects like in ‘spdep’ package) to conduct any kind of traditional spatial analysis with spatial weights based on reticular distances.

We import them into our environment using the code chunk below.

Click to show/hide code chunk
pacman::p_load(sf, spatstat, raster, tidyverse, tmap, spNetwork, spdep, knitr) 
set.seed(123)
rdacc_sf=read_rds("data/rds/acc_sf")%>% 
  mutate(hourofday= hour(incident_datetime))%>%
  mutate(traffic_period = case_when(
    # Define peak hours: 7-9 AM and 4-7 PM (16-19 in 24-hour format)
    hourofday >= 7 & hourofday <= 9 ~ "Peak",
    hourofday >= 16 & hourofday <= 19 ~ "Peak",
    TRUE ~ "Off-Peak"  # Everything else is off-peak
  ))
st_crs(rdacc_sf)
Coordinate Reference System:
  User input: EPSG:32647 
  wkt:
PROJCRS["WGS 84 / UTM zone 47N",
    BASEGEOGCRS["WGS 84",
        ENSEMBLE["World Geodetic System 1984 ensemble",
            MEMBER["World Geodetic System 1984 (Transit)"],
            MEMBER["World Geodetic System 1984 (G730)"],
            MEMBER["World Geodetic System 1984 (G873)"],
            MEMBER["World Geodetic System 1984 (G1150)"],
            MEMBER["World Geodetic System 1984 (G1674)"],
            MEMBER["World Geodetic System 1984 (G1762)"],
            MEMBER["World Geodetic System 1984 (G2139)"],
            ELLIPSOID["WGS 84",6378137,298.257223563,
                LENGTHUNIT["metre",1]],
            ENSEMBLEACCURACY[2.0]],
        PRIMEM["Greenwich",0,
            ANGLEUNIT["degree",0.0174532925199433]],
        ID["EPSG",4326]],
    CONVERSION["UTM zone 47N",
        METHOD["Transverse Mercator",
            ID["EPSG",9807]],
        PARAMETER["Latitude of natural origin",0,
            ANGLEUNIT["degree",0.0174532925199433],
            ID["EPSG",8801]],
        PARAMETER["Longitude of natural origin",99,
            ANGLEUNIT["degree",0.0174532925199433],
            ID["EPSG",8802]],
        PARAMETER["Scale factor at natural origin",0.9996,
            SCALEUNIT["unity",1],
            ID["EPSG",8805]],
        PARAMETER["False easting",500000,
            LENGTHUNIT["metre",1],
            ID["EPSG",8806]],
        PARAMETER["False northing",0,
            LENGTHUNIT["metre",1],
            ID["EPSG",8807]]],
    CS[Cartesian,2],
        AXIS["(E)",east,
            ORDER[1],
            LENGTHUNIT["metre",1]],
        AXIS["(N)",north,
            ORDER[2],
            LENGTHUNIT["metre",1]],
    USAGE[
        SCOPE["Navigation and medium accuracy spatial referencing."],
        AREA["Between 96°E and 102°E, northern hemisphere between equator and 84°N, onshore and offshore. China. Indonesia. Laos. Malaysia - West Malaysia. Mongolia. Myanmar (Burma). Russian Federation. Thailand."],
        BBOX[0,96,84,102]],
    ID["EPSG",32647]]
road_sf <- st_read(dsn = "data/rawdata", layer="hotosm_tha_roads_lines_shp")
map_sf <- st_read(dsn = "data/rawdata", layer="tha_admbnda_adm1_rtsd_20220121")
Reading layer `tha_admbnda_adm1_rtsd_20220121' from data source 
  `C:\arjxn11\ISSS626-GAA\Take-home_Ex\Take-home_Ex1\data\rawdata' 
  using driver `ESRI Shapefile'
Simple feature collection with 77 features and 16 fields
Geometry type: MULTIPOLYGON
Dimension:     XY
Bounding box:  xmin: 97.34336 ymin: 5.613038 xmax: 105.637 ymax: 20.46507
Geodetic CRS:  WGS 84
map2_sf <- st_read(dsn = "data/rawdata", layer="tha_admbnda_adm2_rtsd_20220121")
Reading layer `tha_admbnda_adm2_rtsd_20220121' from data source 
  `C:\arjxn11\ISSS626-GAA\Take-home_Ex\Take-home_Ex1\data\rawdata' 
  using driver `ESRI Shapefile'
Simple feature collection with 928 features and 19 fields
Geometry type: MULTIPOLYGON
Dimension:     XY
Bounding box:  xmin: 97.34336 ymin: 5.613038 xmax: 105.637 ymax: 20.46507
Geodetic CRS:  WGS 84
map_sf=st_transform(map_sf,crs = 32647)
map2_sf=st_transform(map2_sf,crs = 32647)
road_sf=st_set_crs(road_sf, 4326)
st_crs(map_sf)
Coordinate Reference System:
  User input: EPSG:32647 
  wkt:
PROJCRS["WGS 84 / UTM zone 47N",
    BASEGEOGCRS["WGS 84",
        ENSEMBLE["World Geodetic System 1984 ensemble",
            MEMBER["World Geodetic System 1984 (Transit)"],
            MEMBER["World Geodetic System 1984 (G730)"],
            MEMBER["World Geodetic System 1984 (G873)"],
            MEMBER["World Geodetic System 1984 (G1150)"],
            MEMBER["World Geodetic System 1984 (G1674)"],
            MEMBER["World Geodetic System 1984 (G1762)"],
            MEMBER["World Geodetic System 1984 (G2139)"],
            ELLIPSOID["WGS 84",6378137,298.257223563,
                LENGTHUNIT["metre",1]],
            ENSEMBLEACCURACY[2.0]],
        PRIMEM["Greenwich",0,
            ANGLEUNIT["degree",0.0174532925199433]],
        ID["EPSG",4326]],
    CONVERSION["UTM zone 47N",
        METHOD["Transverse Mercator",
            ID["EPSG",9807]],
        PARAMETER["Latitude of natural origin",0,
            ANGLEUNIT["degree",0.0174532925199433],
            ID["EPSG",8801]],
        PARAMETER["Longitude of natural origin",99,
            ANGLEUNIT["degree",0.0174532925199433],
            ID["EPSG",8802]],
        PARAMETER["Scale factor at natural origin",0.9996,
            SCALEUNIT["unity",1],
            ID["EPSG",8805]],
        PARAMETER["False easting",500000,
            LENGTHUNIT["metre",1],
            ID["EPSG",8806]],
        PARAMETER["False northing",0,
            LENGTHUNIT["metre",1],
            ID["EPSG",8807]]],
    CS[Cartesian,2],
        AXIS["(E)",east,
            ORDER[1],
            LENGTHUNIT["metre",1]],
        AXIS["(N)",north,
            ORDER[2],
            LENGTHUNIT["metre",1]],
    USAGE[
        SCOPE["Navigation and medium accuracy spatial referencing."],
        AREA["Between 96°E and 102°E, northern hemisphere between equator and 84°N, onshore and offshore. China. Indonesia. Laos. Malaysia - West Malaysia. Mongolia. Myanmar (Burma). Russian Federation. Thailand."],
        BBOX[0,96,84,102]],
    ID["EPSG",32647]]
bmr_province=c("Bangkok", "Samut Prakan", "Samut Sakhon", "Nonthaburi", "Nakhon Pathom", "Pathum Thani")
bmr_boundary=map_sf %>% 
  filter(ADM1_EN %in% bmr_province)
bmr_boundary2=map2_sf %>% 
  filter(ADM1_EN %in% bmr_province)
st_bbox(bmr_boundary)
     xmin      ymin      xmax      ymax 
 587893.5 1484413.7  712440.5 1579076.3 
st_crs(road_sf)        # This is likely EPSG:4326 (WGS84, latitude/longitude)
st_crs(bmr_boundary)   # This is likely EPSG:32647 (UTM Zone 47N)
# If road_sf was originally in EPSG:4326, reproject it properly
road_sf <- st_transform(road_sf, crs = 32647)
bmr_roads=st_intersection(map2_sf, road_sf)
#write_rds(bmr_roads, "data/rds/bmrroads")
bmr_roads=read_rds("data/rds/bmrroads")
bmr_districts=st_intersection(map2_sf, bmr_roads)

EDA

#Implementing the filter() function with  the help of the list above.
bmr_accsf=rdacc_sf %>% 
  filter(province_en %in% bmr_province)

# Step 1: Summarize the number of hospitalizations per province
accident_summary <- bmr_accsf %>%
  group_by(province_en) %>%
  summarize(total_accidents = n())

# Step 2: Visualize using ggplot2
ggplot(accident_summary, aes(x = reorder(province_en, total_accidents), y = total_accidents)) +
  geom_bar(stat = "identity", fill = "darkred") +
  coord_flip() +  # Flip coordinates for better readability if many provinces
  labs(title = "Total Accidents by Province",
       x = "Province",
       y = "Number of Accidents") +
  theme_minimal()

# Count the number of accidents in Peak and Off-Peak periods
accident_counts_summary <- bmr_accsf %>%
  group_by(traffic_period) %>%
  summarise(accident_count = n())
# Create a bar chart showing the number of accidents in Peak vs Off-Peak
ggplot(data = accident_counts_summary, aes(x = traffic_period, y = accident_count)) +
  geom_bar(stat = "identity", fill = "steelblue") +  # Bar chart with specified accident counts
  labs(title = "Number of Accidents: Peak vs Off-Peak", 
       x = "Traffic Period", 
       y = "Number of Accidents") +
  theme_minimal() +
  theme(plot.title = element_text(hjust = 0.5))  # Center the title

cause_count <- bmr_accsf %>%
  group_by(presumed_cause) %>%
  summarise(count = n()) 
# Filter the top 5 causes
top_5_causes <- cause_count %>%
  top_n(5, count)

# Create the bar chart showing only the top 5 presumed causes
ggplot(top_5_causes, aes(x = reorder(presumed_cause, -count), y = count)) +
  geom_bar(stat = "identity", fill = "skyblue", color = "black") +
  geom_text(aes(label = count), vjust = -0.5) +  # Add labels to show the count on top of the bars
  theme_minimal() +
  labs(title = "Top 5 Presumed Causes of Accidents", 
       x = "Presumed Cause", 
       y = "Accident Count") +
  theme(axis.text.x = element_text(angle = 45, hjust = 1)) 

# Set tmap to interactive view mode (optional for exploration)
tmap_mode("plot")

# Create the map with boundaries and accident points
tm_shape(bmr_boundary) +
  tm_borders(col = "black") +  # Show the boundaries
  tm_shape(bmr_accsf) +
  tm_dots(col = "red", size = 0.01) +  # Show accident points as red dots
  tm_layout(frame = FALSE, legend.outside = TRUE)

# Switch back to static mode after rendering (if needed)
tmap_mode("plot")
# Create the map with your existing OSM data, BMR boundaries, and accident points
tm_shape(bmr_roads) +  # Use your preloaded OSM data
  tm_lines(col='gray', lwd = 1) + 
  tm_shape(bmr_boundary) +
  tm_borders(col = "black", lwd = 1) +  # Plot BMR boundary with black borders
  tm_shape(bmr_accsf) +
  tm_dots(col = "red", size = 0.01) +  # Show accident points as red dots
  tm_layout(frame = FALSE, legend.outside = TRUE)
bmr_acc <- as_Spatial(bmr_accsf)
bmr <- as_Spatial(bmr_boundary)
write_rds(osm_data, "data/rds/osm_data_spatial")
osm_data=read_rds("data/rds/osm_data_spatial")
bmracc_sp <- as(bmr_acc, "SpatialPoints")
boundary_sp <- as(bmr, "SpatialPolygons")
# Load necessary libraries
library(sf)

# Create a square grid that covers the BMR boundary
grid_size <- 5000  # Size of the grid cells in meters (adjust as necessary)
bmr_grid <- st_make_grid(bmr_boundary, cellsize = grid_size, square = TRUE)

# Convert the grid into an sf object
bmr_grid_sf <- st_sf(geometry = bmr_grid)

# Clip the grid to the BMR boundary (to remove grid cells outside the boundary)
bmr_grid_sf <- st_intersection(bmr_grid_sf, bmr_boundary)
# Create a hexagonal grid covering the BMR boundary
bmr_hex_grid <- st_make_grid(bmr_boundary, cellsize = grid_size, square = FALSE)

# Convert to an sf object and clip to the BMR boundary
bmr_hex_grid_sf <- st_sf(geometry = bmr_hex_grid)
bmr_hex_grid_sf <- st_intersection(bmr_hex_grid_sf, bmr_boundary)

Now, we want to determine the road type that has the most accidents.

For this, we create a buffer first as accidents don’t always happen directly on the road but just off it using the st_buffer() function. A buffer of 5 meters is created.

After that, we can perform a spatial join using the st_join() function of the sf package.

# Create a small buffer around the accident points (e.g., 50 meters)
accidents_buffered = st_buffer(bmr_accsf, dist = 10)

# Perform the spatial join again with the buffered accident points
accidents_on_roads = st_join(accidents_buffered, bmr_roads, join = st_intersects)
head(accidents_on_roads)
Simple feature collection with 6 features and 51 fields
Geometry type: POLYGON
Dimension:     XY
Bounding box:  xmin: 627002.3 ymin: 1531930 xmax: 655421.7 ymax: 1533391
Projected CRS: WGS 84 / UTM zone 47N
# A tibble: 6 × 52
  acc_code incident_datetime   report_datetime     province_th province_en  
     <dbl> <dttm>              <dttm>              <chr>       <chr>        
1   571882 2019-01-01 02:25:00 2019-01-02 17:32:00 นครปฐม      Nakhon Pathom
2   571882 2019-01-01 02:25:00 2019-01-02 17:32:00 นครปฐม      Nakhon Pathom
3   571882 2019-01-01 02:25:00 2019-01-02 17:32:00 นครปฐม      Nakhon Pathom
4   571882 2019-01-01 02:25:00 2019-01-02 17:32:00 นครปฐม      Nakhon Pathom
5   600001 2019-01-01 03:00:00 2019-01-05 10:33:00 นนทบุรี       Nonthaburi   
6   600001 2019-01-01 03:00:00 2019-01-05 10:33:00 นนทบุรี       Nonthaburi   
# ℹ 47 more variables: agency <chr>, route <chr>, vehicle_type <chr>,
#   presumed_cause <chr>, accident_type <chr>,
#   number_of_vehicles_involved <dbl>, number_of_fatalities <dbl>,
#   number_of_injuries <dbl>, weather_condition <chr>, road_description <chr>,
#   slope_description <chr>, geometry <POLYGON [m]>, Month <dbl>,
#   Month_fac <ord>, dayofmonth <int>, hourofday <int>, traffic_period <chr>,
#   Shape_Leng <dbl>, Shape_Area <dbl>, ADM1_EN <chr>, ADM1_TH <chr>, …

We now count the number of accidents on each highway type by implementing the code chunk below.

# Count accidents by road type
accidents_by_road_type = accidents_on_roads %>%
  group_by(highway) %>%  # Assuming the OSM roads data has a 'road_type' column
  summarise(accident_count = n())

# View the summary
print(accidents_by_road_type)
Simple feature collection with 20 features and 2 fields
Geometry type: MULTIPOLYGON
Dimension:     XY
Bounding box:  xmin: 591267.5 ymin: 1486836 xmax: 710176.1 ymax: 1576530
Projected CRS: WGS 84 / UTM zone 47N
# A tibble: 20 × 3
   highway        accident_count                                        geometry
   <chr>                   <int>                              <MULTIPOLYGON [m]>
 1 construction             1217 (((629789.3 1496006, 629789.1 1496005, 629788.…
 2 cycleway                    8 (((665707.4 1532883, 665707.3 1532882, 665707.…
 3 footway                   218 (((627989 1495786, 627988.8 1495786, 627988.6 …
 4 motorway                 5366 (((661514.4 1506189, 661514 1506189, 661513.7 …
 5 motorway_link             939 (((664470.2 1506809, 664469.9 1506809, 664469.…
 6 path                       16 (((664563 1509817, 664562.5 1509817, 664562 15…
 7 primary                  2959 (((617714.5 1511678, 617714.2 1511678, 617713.…
 8 primary_link              484 (((626402.2 1497350, 626401.9 1497350, 626401.…
 9 residential               552 (((616749.7 1492543, 616749.4 1492542, 616749.…
10 secondary                2815 (((621676.4 1492259, 621676.1 1492259, 621675.…
11 secondary_link            329 (((637728 1498891, 637727.8 1498890, 637727.5 …
12 service                   723 (((617727.2 1487698, 617726.9 1487698, 617726.…
13 steps                      39 (((637789.9 1501257, 637789.8 1501256, 637789.…
14 tertiary                  411 (((616694.7 1490301, 616694.5 1490301, 616694.…
15 tertiary_link               9 (((683966 1504996, 683965.9 1504995, 683965.8 …
16 track                       4 (((682585.7 1518975, 682585.6 1518975, 682585.…
17 trunk                    2897 (((603768.7 1525407, 603768.4 1525406, 603768 …
18 trunk_link                289 (((639960.7 1500837, 639960.5 1500837, 639960.…
19 unclassified              122 (((622943.8 1491550, 622943.6 1491550, 622943.…
20 <NA>                      953 (((616483.2 1486841, 616482.9 1486841, 616482.…
top_5_highway=accidents_by_road_type %>%
  arrange(desc(accident_count))%>%
  slice(1:5)

We will now use the ggplot2 package to produce a barplot to facilitate visualization and understand what type of highways result in the most accidents.

library(ggplot2)

# Create bar plot
ggplot(top_5_highway, aes(x = highway, y = accident_count, fill = highway)) +
  geom_bar(stat = "identity") +
  labs(title = "Accident Count by highway Type", x = "Highway Type", y = "Number of Accidents") +
  theme_minimal()

We will now single out the motorway to further determine what type of accidents are most common on them.

# Filter for motorway and count causes of accidents
motorway_accidents_cause_count <- accidents_on_roads %>%
  filter(highway == "motorway") %>%
  group_by(presumed_cause) %>%
  summarise(count = n()) %>%
  arrange(desc(count)) %>%   # Sort by count in descending order
  slice(1:5)                 # Select top 5 causes

# Create a bar plot for the top 5 causes of accidents on motorways
ggplot(motorway_accidents_cause_count, aes(x = reorder(presumed_cause, count), y = count, fill = presumed_cause)) +
  geom_bar(stat = "identity") +
  coord_flip() +  # Flip the axes for better readability
  labs(title = "Top 5 Causes of Accidents on Motorways",
       x = "Accident Cause",
       y = "Count") +
  theme_minimal() +
  theme(legend.position = "none")  # Hide legend

Speeding seems to be by far the most common reason for road accidents across the region.

The best way to deal with this would be the installation of more speed cameras and harsher penalties, in the form of larger fines, for failing to adhere to regulations.

Currently, fines for speeding can be up to 4000B. Increasing this fine would be prudent and help reduce the amount of speeding accidents on motorways and across the region in general.

Interactive map to visualize Presumed Cause

To further reinforce our expectations, we will produce a map that allows us to hover over all regions and visualize the causes of accidents in each polygon.

We first perform a spatial join using the st_join function and then count the number of accidents based on the presumed_cause.

# Perform a spatial join to count the number of accidents within each grid cell
accidents_by_grid <- st_join(bmr_grid_sf, bmr_accsf) %>%
  group_by(geometry) %>%
  summarise(accident_count = n())  # Count accidents in each grid cell


# Perform a spatial join to associate accidents with polygons
# This assumes you already have polygons in `bmr_grid_sf` and accidents in `bmr_accsf`

accidents_by_polygon_and_cause <- st_join(bmr_grid_sf, bmr_accsf) %>%
  group_by(geometry, presumed_cause) %>%
  summarise(cause_count = n())  # Count the number of accidents by presumed cause in each polygon

# Optionally, aggregate presumed causes for each polygon into a summary
polygon_cause_summary <- accidents_by_polygon_and_cause %>%
  group_by(geometry) %>%
  summarise(total_accidents = sum(cause_count),
            presumed_cause_summary = paste(presumed_cause, ":", cause_count, collapse = "; "))
# Switch to interactive mode to enable tooltips
tmap_mode("plot")

# Create the choropleth map with hover tooltips
tm_shape(polygon_cause_summary) +
  tm_polygons(col = "total_accidents", palette = "Reds", style = "quantile", 
              title = "Accident Count", border.col = "black",
              id = "presumed_cause_summary") +  # Tooltip will show presumed causes
  tm_layout(frame = FALSE, legend.outside = TRUE)

tmap_mode('plot')

Kernel Density Estimation (KDE)

KDE will allow us to better estimate the distribution of accidents acrosss the Bangkok Metropolitan Region. Using this, we can make more informed decisions on where to focus resources on to reduce the rate of accidents across the region.

We start off by preparing the data for KDE.

# Step 3: Define the window (bounding box) from the boundary
boundary_bbox <- bbox(boundary_sp)  # Get bounding box of boundary
window <- owin(xrange = boundary_bbox[1, ], yrange = boundary_bbox[2, ])  # Define window

# Step 4: Extract the coordinates from the SpatialPoints object
coordinates <- coordinates(bmracc_sp)

# Step 5: Convert the SpatialPoints into a ppp object using the window
bmracc_ppp <- ppp(x = coordinates[,1], y = coordinates[,2], window = window)

# Step 6: Check the structure of the resulting point pattern object
summary(bmracc_ppp)
Planar point pattern:  12986 points
Average intensity 1.101448e-06 points per square unit

*Pattern contains duplicated points*

Coordinates are given to 10 decimal places

Window: rectangle = [587893.5, 712440.5] x [1484413.7, 1579076.3] units
                    (124500 x 94660 units)
Window area = 11789900000 square units
# You can now use the ppp object for spatial analysis with spatstat

Note that you must ensure to convert the spatial objects into ppp (planar point pattern) form before proceeding with Kernel Density Estimation. The spatstat package requires data to be in this format before conducting point pattern analysis. This also improves computational efficiency.

After creating the above PPP object, we check for duplicates by implementing the code chunk below.

any(duplicated(bmracc_ppp))
[1] TRUE

The multiplicity() function helps give us a better insight into the duplicates that are present in the ppp object.

multiplicity(bmracc_ppp)
    1     2     3     4     5     6     7     8     9    10    11    12    13 
    1     1     1     2     1     2     1     1     2     1     1     1     1 
   14    15    16    17    18    19    20    21    22    23    24    25    26 
    1     1     1     1     1     2     1     1     1     1     1     1     1 
   27    28    29    30    31    32    33    34    35    36    37    38    39 
    1     1     5     1     1     1     4     1     1     6     1     5     5 
   40    41    42    43    44    45    46    47    48    49    50    51    52 
    1     1     5     1     1     1     1     1     1     1     1     1     1 
   53    54    55    56    57    58    59    60    61    62    63    64    65 
    1     1     1     1     6     6     1     6     1     1     6     3     1 
   66    67    68    69    70    71    72    73    74    75    76    77    78 
    6     1     1     1     1     1     1     1     3     2     1     5     3 
   79    80    81    82    83    84    85    86    87    88    89    90    91 
    1     1     1     1     1     1     1     1     1     1     1     1     3 
   92    93    94    95    96    97    98    99   100   101   102   103   104 
    1     1     1     3     1     3     2     1     3     2     1     6     1 
  105   106   107   108   109   110   111   112   113   114   115   116   117 
    1     1     4     1     1     1    11    11     4     1     1     1     1 
  118   119   120   121   122   123   124   125   126   127   128   129   130 
    4     1     1     2    11    11     2     1     1     1     1     1     2 
  131   132   133   134   135   136   137   138   139   140   141   142   143 
    1     1     1     1    11     6     1    11     1     1    11     1     1 
  144   145   146   147   148   149   150   151   152   153   154   155   156 
   11    11     2     3     1     1     1     1     1     1     1     1    11 
  157   158   159   160   161   162   163   164   165   166   167   168   169 
    4     7     1     1     1     1     1     7     3     1     1     1     1 
  170   171   172   173   174   175   176   177   178   179   180   181   182 
    1    14     3     4     3     4     1     3     1     1     1     4     4 
  183   184   185   186   187   188   189   190   191   192   193   194   195 
    1     1     3     1     4     1     1     2     1     1     4     4     1 
  196   197   198   199   200   201   202   203   204   205   206   207   208 
    1     3     2     1    14     1     3     1     1     4     4     1     1 
  209   210   211   212   213   214   215   216   217   218   219   220   221 
    4     1     1     1     1     1     1     1     1     1     1    12     2 
  222   223   224   225   226   227   228   229   230   231   232   233   234 
    1     1     1     2     4     3     1     1     1     1     1     1     1 
  235   236   237   238   239   240   241   242   243   244   245   246   247 
    1     1     1     1     1     1     1     1     2     1     1     1     1 
  248   249   250   251   252   253   254   255   256   257   258   259   260 
    9     1     1     1     1     1     1     1     2     1     1     1     1 
  261   262   263   264   265   266   267   268   269   270   271   272   273 
    1     1     1     1     1     1     1     2     1     1     1     1     1 
  274   275   276   277   278   279   280   281   282   283   284   285   286 
    1     4     1     1     1     1     1     1     1     1     1     1     1 
  287   288   289   290   291   292   293   294   295   296   297   298   299 
    1     1     1     1     1     1     1     1     1     1     1     1     1 
  300   301   302   303   304   305   306   307   308   309   310   311   312 
    1     1     1     2     1     1     1     1     1     1     1     1     1 
  313   314   315   316   317   318   319   320   321   322   323   324   325 
    2     1     1     1     1     1     1     2     1     1     2     3     1 
  326   327   328   329   330   331   332   333   334   335   336   337   338 
    1     1     1     1     2     1     1     1     1     1     1     1     1 
  339   340   341   342   343   344   345   346   347   348   349   350   351 
    1     1     1     2     1     1     1     1     1     1     1     1     1 
  352   353   354   355   356   357   358   359   360   361   362   363   364 
    6     1     1     3     1     1     1     1     1     2     1     1     1 
  365   366   367   368   369   370   371   372   373   374   375   376   377 
    1     1     3     2     1     1     1     1     1     1     6     1     1 
  378   379   380   381   382   383   384   385   386   387   388   389   390 
    1     1     1     1     1     5     2     1     1     1     1     1     1 
  391   392   393   394   395   396   397   398   399   400   401   402   403 
    1    12     2     1     2     1     1     1     2     1     1     2     1 
  404   405   406   407   408   409   410   411   412   413   414   415   416 
    1     1     1     2     1     1     1     2     1     1     2     1     1 
  417   418   419   420   421   422   423   424   425   426   427   428   429 
    1     2     3     1     2     1     1     1     1     1     1     1     2 
  430   431   432   433   434   435   436   437   438   439   440   441   442 
    1     1     1     2     1     1     1     1     1     1     1     2     1 
  443   444   445   446   447   448   449   450   451   452   453   454   455 
    1     1     1     1     1     1     1     1     1     1     1     1     1 
  456   457   458   459   460   461   462   463   464   465   466   467   468 
    1     1     1     1     1     1     1     1     1     1     1     1     1 
  469   470   471   472   473   474   475   476   477   478   479   480   481 
    1     3     1     1     1     1     1     1     1     1     1     1     1 
  482   483   484   485   486   487   488   489   490   491   492   493   494 
    1     1     1     1     2     1     2     1     1     2     1     1     1 
  495   496   497   498   499   500   501   502   503   504   505   506   507 
    1     1     1     1     1     1     1     1     1     1     1     1     3 
  508   509   510   511   512   513   514   515   516   517   518   519   520 
    1     1     1     1     1     1     1     1     1     1     1     1     1 
  521   522   523   524   525   526   527   528   529   530   531   532   533 
    1     1     1     3     1     1     1     1     1     1     1     1     1 
  534   535   536   537   538   539   540   541   542   543   544   545   546 
    1     1     1     2     1     1     1     1     1     1     1     1     1 
  547   548   549   550   551   552   553   554   555   556   557   558   559 
    1     1     1     1     1     2     1     1     3     1     1     1     1 
  560   561   562   563   564   565   566   567   568   569   570   571   572 
    1     1     1     1     1     1     3     1     1     1     1     1     2 
  573   574   575   576   577   578   579   580   581   582   583   584   585 
    1     1     1     1     1     1     1     1     1     2     1     1     9 
  586   587   588   589   590   591   592   593   594   595   596   597   598 
    1     2     1     1     1     1     1     1     1     1     1     1     2 
  599   600   601   602   603   604   605   606   607   608   609   610   611 
    1     1     2     1     1     1     1     1     1     1     1     1     2 
  612   613   614   615   616   617   618   619   620   621   622   623   624 
    1     1     2     1     1     1     1     1     1     1     1     1     2 
  625   626   627   628   629   630   631   632   633   634   635   636   637 
    1     1     1     1     1     1     1     1     1     1     1     1     1 
  638   639   640   641   642   643   644   645   646   647   648   649   650 
    1     1    12     1     1     6     1     1     1     1     2     1     1 
  651   652   653   654   655   656   657   658   659   660   661   662   663 
    1     2     1     1     1     6     3     1     1     1     1     1     1 
  664   665   666   667   668   669   670   671   672   673   674   675   676 
    1    14     2     1     1     1     1     1     1     1     1     1     1 
  677   678   679   680   681   682   683   684   685   686   687   688   689 
    1     1     1     1     1     1     1     2     1     1     4     1     1 
  690   691   692   693   694   695   696   697   698   699   700   701   702 
    1     1     1     1     1     1     1     1     1     3     1     1     1 
  703   704   705   706   707   708   709   710   711   712   713   714   715 
    1     3     1     1     1     1     1     1     1     1     1     1     1 
  716   717   718   719   720   721   722   723   724   725   726   727   728 
    1     1     1     1     1     1     2     1     4     1     1     2     1 
  729   730   731   732   733   734   735   736   737   738   739   740   741 
    1     1     1     2     2     1     1     1     1     4     1     1     1 
  742   743   744   745   746   747   748   749   750   751   752   753   754 
    1     1     1     1     1     2     1     1     1     1     1     1     1 
  755   756   757   758   759   760   761   762   763   764   765   766   767 
    8     1     1     4     1     3     1     1     1     1     1     1     1 
  768   769   770   771   772   773   774   775   776   777   778   779   780 
    6     1     1     1     1     2     1     1     1     1     1     1     1 
  781   782   783   784   785   786   787   788   789   790   791   792   793 
    1     1     4     1     1     1     1     2     6     1     1     1     1 
  794   795   796   797   798   799   800   801   802   803   804   805   806 
    1     1     1     1     1     4     1     1     1     1     1     1     1 
  807   808   809   810   811   812   813   814   815   816   817   818   819 
    1     2     1     1     1     2     1     1     1     1     1     1     1 
  820   821   822   823   824   825   826   827   828   829   830   831   832 
    1     1     1     1     1     1     1     1     1     2     1     1     1 
  833   834   835   836   837   838   839   840   841   842   843   844   845 
    1     1     1     1     1     3     1     1     2     1     1     1     1 
  846   847   848   849   850   851   852   853   854   855   856   857   858 
    1     1     1     1     1     6     1     1     1     1     1     1     1 
  859   860   861   862   863   864   865   866   867   868   869   870   871 
    1     1     1     3     2     1     1     1     1     1     1     2     1 
  872   873   874   875   876   877   878   879   880   881   882   883   884 
    1     1     1     1     1     1     1     1     1     1     3     1     3 
  885   886   887   888   889   890   891   892   893   894   895   896   897 
    1     1     3     1     1     1     1     1     1     1     1     1     1 
  898   899   900   901   902   903   904   905   906   907   908   909   910 
    1    10     1     1     2     1     1     2     1     1     1     1     1 
  911   912   913   914   915   916   917   918   919   920   921   922   923 
    2     2     1     1     1     1     1     1     1     1     1     1     3 
  924   925   926   927   928   929   930   931   932   933   934   935   936 
    1     1     1     1     1     1     1     1     3     1     1     1     1 
  937   938   939   940   941   942   943   944   945   946   947   948   949 
    1     1     1     1     6     1     1     1     1     1     1     1     1 
  950   951   952   953   954   955   956   957   958   959   960   961   962 
    1     1     1     1     1     1     1     1     1     1     1     1     1 
  963   964   965   966   967   968   969   970   971   972   973   974   975 
    2     1     2     1     3     1     1     1     1     1     1     1     1 
  976   977   978   979   980   981   982   983   984   985   986   987   988 
    1     1     1     1     1     3     2     1     1     1     1     1     1 
  989   990   991   992   993   994   995   996   997   998   999  1000  1001 
    1     1     1     1     1     3     1     1     1     1     1     1     1 
 1002  1003  1004  1005  1006  1007  1008  1009  1010  1011  1012  1013  1014 
    1     1     1     1     1     3     1     1     1     1     1     1     1 
 1015  1016  1017  1018  1019  1020  1021  1022  1023  1024  1025  1026  1027 
    1     1     1     1     1     1     1     1     1     1     1     1     1 
 1028  1029  1030  1031  1032  1033  1034  1035  1036  1037  1038  1039  1040 
    1     1     1     1     2     1     1     1     1     1     1     2     1 
 1041  1042  1043  1044  1045  1046  1047  1048  1049  1050  1051  1052  1053 
    1     1     1     1     1     1     1     1     2     1     1     1     1 
 1054  1055  1056  1057  1058  1059  1060  1061  1062  1063  1064  1065  1066 
    1     1     1     1     2     1     1     1     1     1     1     1     1 
 1067  1068  1069  1070  1071  1072  1073  1074  1075  1076  1077  1078  1079 
    1     3     1     1     1     1     1     1     1     1     1     1     1 
 1080  1081  1082  1083  1084  1085  1086  1087  1088  1089  1090  1091  1092 
    1     1     3     1     1     1     1     2     1     3     1     2     1 
 1093  1094  1095  1096  1097  1098  1099  1100  1101  1102  1103  1104  1105 
    8     1     2     1     2     2     1     1     1     1     4     1     1 
 1106  1107  1108  1109  1110  1111  1112  1113  1114  1115  1116  1117  1118 
    2     1     1     1     1     1     1     1     1     1     1     1     1 
 1119  1120  1121  1122  1123  1124  1125  1126  1127  1128  1129  1130  1131 
    1     1     1     1     2     1     1     1     1     1     1     1     2 
 1132  1133  1134  1135  1136  1137  1138  1139  1140  1141  1142  1143  1144 
    3     2     2     5     1     1     2     6     1     1     1     1     1 
 1145  1146  1147  1148  1149  1150  1151  1152  1153  1154  1155  1156  1157 
    1     1     1     3     2     1     1     1     1     1     1     1     3 
 1158  1159  1160  1161  1162  1163  1164  1165  1166  1167  1168  1169  1170 
    2     1     1     1     1     1     1     1     1     2     1     1     1 
 1171  1172  1173  1174  1175  1176  1177  1178  1179  1180  1181  1182  1183 
   12     1     1     3     1     1     1     1     1     2     2     2     1 
 1184  1185  1186  1187  1188  1189  1190  1191  1192  1193  1194  1195  1196 
    1     1     1     1     4     1     1     1     1     1     1     2     1 
 1197  1198  1199  1200  1201  1202  1203  1204  1205  1206  1207  1208  1209 
    1     1     1     1     1     1     1     1     1     1     1     1     1 
 1210  1211  1212  1213  1214  1215  1216  1217  1218  1219  1220  1221  1222 
    1     1     1     1     1     1     1     1     4     8     1     1     1 
 1223  1224  1225  1226  1227  1228  1229  1230  1231  1232  1233  1234  1235 
   14     3     1     1     1     1     1     1     1     1     1     1     1 
 1236  1237  1238  1239  1240  1241  1242  1243  1244  1245  1246  1247  1248 
    1     1     1     1     1     1     2     6     1     2     1     2     1 
 1249  1250  1251  1252  1253  1254  1255  1256  1257  1258  1259  1260  1261 
    1     1     1     1     1     1     1     1     2     1     1     1     3 
 1262  1263  1264  1265  1266  1267  1268  1269  1270  1271  1272  1273  1274 
    2     1    10     1     1     1     1     1     1     1     1     1     1 
 1275  1276  1277  1278  1279  1280  1281  1282  1283  1284  1285  1286  1287 
    1     3     2     1     1     1     1     1     1     5     3     2     1 
 1288  1289  1290  1291  1292  1293  1294  1295  1296  1297  1298  1299  1300 
    1     1     1     1     1     1     1     1     1     1     2     1     1 
 1301  1302  1303  1304  1305  1306  1307  1308  1309  1310  1311  1312  1313 
    1     1     1     1     1     1     1     1     1     1     2     1     1 
 1314  1315  1316  1317  1318  1319  1320  1321  1322  1323  1324  1325  1326 
    1     1     1     1     1     1     1     1     1     2     3     1     1 
 1327  1328  1329  1330  1331  1332  1333  1334  1335  1336  1337  1338  1339 
    1     1     1     4     1     1     1     1     1     1     4     1     3 
 1340  1341  1342  1343  1344  1345  1346  1347  1348  1349  1350  1351  1352 
    2     1     1     1     1     1     1     1     1    14     1     1     1 
 1353  1354  1355  1356  1357  1358  1359  1360  1361  1362  1363  1364  1365 
    1     1     1     1     1     3     2     2     1     1     1     1     1 
 1366  1367  1368  1369  1370  1371  1372  1373  1374  1375  1376  1377  1378 
    1     3     1     1     1     1     2     1     1     1     1     1     1 
 1379  1380  1381  1382  1383  1384  1385  1386  1387  1388  1389  1390  1391 
    1     1     1     1     1     1     1     1     1     1     1     1     1 
 1392  1393  1394  1395  1396  1397  1398  1399  1400  1401  1402  1403  1404 
    1     1     3     1     1     1     1     1     1     3     1     1     1 
 1405  1406  1407  1408  1409  1410  1411  1412  1413  1414  1415  1416  1417 
    1     1     2     1     1     1     1     1     1     1     1     1     4 
 1418  1419  1420  1421  1422  1423  1424  1425  1426  1427  1428  1429  1430 
    1     1     1     1     1     1     1     1     1     1     1     1     1 
 1431  1432  1433  1434  1435  1436  1437  1438  1439  1440  1441  1442  1443 
    1     1     1     1     1     2     1     1     1     1     1     4     1 
 1444  1445  1446  1447  1448  1449  1450  1451  1452  1453  1454  1455  1456 
    1     2     1     1     1     2     2     1     1     1     1     1     1 
 1457  1458  1459  1460  1461  1462  1463  1464  1465  1466  1467  1468  1469 
    2     1     1     3     1     1     1     1     1     1     1     1     1 
 1470  1471  1472  1473  1474  1475  1476  1477  1478  1479  1480  1481  1482 
    1     1     1     1     1     3     1     1     1     1     1     1     4 
 1483  1484  1485  1486  1487  1488  1489  1490  1491  1492  1493  1494  1495 
    1     1     1     1     3     1     1     1     2     1     1     1     1 
 1496  1497  1498  1499  1500  1501  1502  1503  1504  1505  1506  1507  1508 
    1     1     1     1     1     1     1     1     1     1     1     1     1 
 1509  1510  1511  1512  1513  1514  1515  1516  1517  1518  1519  1520  1521 
    2     1     2     1     1     1     1     1     1     1     1     1     1 
 1522  1523  1524  1525  1526  1527  1528  1529  1530  1531  1532  1533  1534 
    1     1     2    12     1     1     1     1     1     3     1     1     1 
 1535  1536  1537  1538  1539  1540  1541  1542  1543  1544  1545  1546  1547 
    2     1     1     1     1     1     1     1     1     1     7     2     1 
 1548  1549  1550  1551  1552  1553  1554  1555  1556  1557  1558  1559  1560 
    1     1     1     1     1     1     1     1     1     1     1     1     3 
 1561  1562  1563  1564  1565  1566  1567  1568  1569  1570  1571  1572  1573 
    1     1     1     1     1     1     1     1     1     2     1     7     1 
 1574  1575  1576  1577  1578  1579  1580  1581  1582  1583  1584  1585  1586 
    1     1     1     2     3     1     2     1     1     1     1     1     1 
 1587  1588  1589  1590  1591  1592  1593  1594  1595  1596  1597  1598  1599 
    1     1     1     1     1     3     9     1     3     3     1     1     1 
 1600  1601  1602  1603  1604  1605  1606  1607  1608  1609  1610  1611  1612 
    1     1     1     2     1     3     1     1     2     1     1     1     1 
 1613  1614  1615  1616  1617  1618  1619  1620  1621  1622  1623  1624  1625 
    1     2     4     1     1     1     1     1     1     2     1     1     1 
 1626  1627  1628  1629  1630  1631  1632  1633  1634  1635  1636  1637  1638 
    1     1     2     1     1     1     1     1     1     1     1     1     1 
 1639  1640  1641  1642  1643  1644  1645  1646  1647  1648  1649  1650  1651 
    1     3     1     1     1     1     1     1     1     1     1     1     1 
 1652  1653  1654  1655  1656  1657  1658  1659  1660  1661  1662  1663  1664 
    1     1     1     1     1     1     2     1     1     1     1     1     1 
 1665  1666  1667  1668  1669  1670  1671  1672  1673  1674  1675  1676  1677 
    1     2     1     1     1     1     1     1     1     1     3     2     1 
 1678  1679  1680  1681  1682  1683  1684  1685  1686  1687  1688  1689  1690 
    1     1     1     1     1     1     1     1     1     1     1     1     2 
 1691  1692  1693  1694  1695  1696  1697  1698  1699  1700  1701  1702  1703 
    1     5     1     1     1     2     2     1     3     1     1     5     2 
 1704  1705  1706  1707  1708  1709  1710  1711  1712  1713  1714  1715  1716 
    1     1     2     1     1     1     1     1     3     1     2     1     1 
 1717  1718  1719  1720  1721  1722  1723  1724  1725  1726  1727  1728  1729 
    1     1     1     1     2     1     1     1     1     1     1     1     2 
 1730  1731  1732  1733  1734  1735  1736  1737  1738  1739  1740  1741  1742 
    1     1     2     1     1     1     1     2     1     1     1     1     1 
 1743  1744  1745  1746  1747  1748  1749  1750  1751  1752  1753  1754  1755 
    1     6     1     2     1     1     1     1     1     1     1     6     1 
 1756  1757  1758  1759  1760  1761  1762  1763  1764  1765  1766  1767  1768 
    1     1     1     1     1     1     1     1     1     7     1     1     1 
 1769  1770  1771  1772  1773  1774  1775  1776  1777  1778  1779  1780  1781 
    2     6     1     3     1     1     1     1     1     1     1     1     1 
 1782  1783  1784  1785  1786  1787  1788  1789  1790  1791  1792  1793  1794 
    1     4     1     2     1     1     2     2     1     1     1     1     1 
 1795  1796  1797  1798  1799  1800  1801  1802  1803  1804  1805  1806  1807 
    1     1     2     1     1     1     1     1     1     1     1     1     1 
 1808  1809  1810  1811  1812  1813  1814  1815  1816  1817  1818  1819  1820 
    1     1     1     1     1     1     1     1     1     1     1     1     1 
 1821  1822  1823  1824  1825  1826  1827  1828  1829  1830  1831  1832  1833 
    1     1     1     1     1     1     1     1     1     1     1     1     1 
 1834  1835  1836  1837  1838  1839  1840  1841  1842  1843  1844  1845  1846 
    1     1     1     2     1     1     1     1     1     1     1     1     1 
 1847  1848  1849  1850  1851  1852  1853  1854  1855  1856  1857  1858  1859 
    1     1     1     1     1     5     1     1     1     1     1     1     1 
 1860  1861  1862  1863  1864  1865  1866  1867  1868  1869  1870  1871  1872 
    1     3     1     1     1     1     1     1     3     1     1     1     1 
 1873  1874  1875  1876  1877  1878  1879  1880  1881  1882  1883  1884  1885 
    1     1     1     1     1     1     2     1     1     1     1     1     1 
 1886  1887  1888  1889  1890  1891  1892  1893  1894  1895  1896  1897  1898 
    2     2     1     1     1     1     1     1     1     2     3     1     1 
 1899  1900  1901  1902  1903  1904  1905  1906  1907  1908  1909  1910  1911 
    1     2     1     1     1     1     2     1     1     1     1     1     2 
 1912  1913  1914  1915  1916  1917  1918  1919  1920  1921  1922  1923  1924 
    1     1     1     1     1     1     1     3     1     1     1     6     1 
 1925  1926  1927  1928  1929  1930  1931  1932  1933  1934  1935  1936  1937 
    1     1     1     1     1     1     1     1     1     1     1     2     1 
 1938  1939  1940  1941  1942  1943  1944  1945  1946  1947  1948  1949  1950 
    1     1     1     1     3     1     1     1     1     4     1     1     4 
 1951  1952  1953  1954  1955  1956  1957  1958  1959  1960  1961  1962  1963 
    1     1     1     1     1     1     1     1     1     1     1     1     1 
 1964  1965  1966  1967  1968  1969  1970  1971  1972  1973  1974  1975  1976 
    1     2     1     1     1     1     1     1     1     3     1     1     1 
 1977  1978  1979  1980  1981  1982  1983  1984  1985  1986  1987  1988  1989 
    1     1     1     1     1     3     1     2     1     1     2     2     1 
 1990  1991  1992  1993  1994  1995  1996  1997  1998  1999  2000  2001  2002 
    1     1     1     1     1     1     1     1     1     1     1     1     1 
 2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015 
    1     1     1     1     1     1     1     4     1     1     1     2     2 
 2016  2017  2018  2019  2020  2021  2022  2023  2024  2025  2026  2027  2028 
    1     1     1     1     3     1     1     4     1     1     1     1     4 
 2029  2030  2031  2032  2033  2034  2035  2036  2037  2038  2039  2040  2041 
    2     1     1     1     1     1     1     1     1     1     1     1     1 
 2042  2043  2044  2045  2046  2047  2048  2049  2050  2051  2052  2053  2054 
    2     1     3     1     1     1     2     2     1     1     1     1     1 
 2055  2056  2057  2058  2059  2060  2061  2062  2063  2064  2065  2066  2067 
    3     1     1     2     1     1     1     1     1     1     1     1     1 
 2068  2069  2070  2071  2072  2073  2074  2075  2076  2077  2078  2079  2080 
    1     1     1     1     1     1     1     1     1     1     1     3     1 
 2081  2082  2083  2084  2085  2086  2087  2088  2089  2090  2091  2092  2093 
    6     1     1     1     1     1     1     1     1     1     1     2     2 
 2094  2095  2096  2097  2098  2099  2100  2101  2102  2103  2104  2105  2106 
    1     1     1     1     1     2     1     1     1     1     1     1     1 
 2107  2108  2109  2110  2111  2112  2113  2114  2115  2116  2117  2118  2119 
    2     4     1     2     1     1     2     5     1     2    10     1     1 
 2120  2121  2122  2123  2124  2125  2126  2127  2128  2129  2130  2131  2132 
    6     1     1     1     1     2     1     1     1     1     1     2     1 
 2133  2134  2135  2136  2137  2138  2139  2140  2141  2142  2143  2144  2145 
    1     3     1     1     1     1     1     1     1     1     1     1     1 
 2146  2147  2148  2149  2150  2151  2152  2153  2154  2155  2156  2157  2158 
    3     1     1     1     1     1     1     2     1     1     1     1     1 
 2159  2160  2161  2162  2163  2164  2165  2166  2167  2168  2169  2170  2171 
    2     1     1     1     1     2     1     3     2     1     1     4     1 
 2172  2173  2174  2175  2176  2177  2178  2179  2180  2181  2182  2183  2184 
    1     1     1     1     1    14     1     1     1     1     1     1     1 
 2185  2186  2187  2188  2189  2190  2191  2192  2193  2194  2195  2196  2197 
    1     1     1     2     1     1     1     2     1     1     1     1     1 
 2198  2199  2200  2201  2202  2203  2204  2205  2206  2207  2208  2209  2210 
    1     2     1     2     1     1     1     1     1     1     1     2     1 
 2211  2212  2213  2214  2215  2216  2217  2218  2219  2220  2221  2222  2223 
    1     1     1     1     1     1     1     1     1     1     1     1     1 
 2224  2225  2226  2227  2228  2229  2230  2231  2232  2233  2234  2235  2236 
    1     1     1     1     1     1     1     9     1     1     1     1     1 
 2237  2238  2239  2240  2241  2242  2243  2244  2245  2246  2247  2248  2249 
    1     1     1     1     1     1     1     1     2     1     1     1     1 
 2250  2251  2252  2253  2254  2255  2256  2257  2258  2259  2260  2261  2262 
    1     1     1     1     1     1     1     1     1     1     4     3     1 
 2263  2264  2265  2266  2267  2268  2269  2270  2271  2272  2273  2274  2275 
    1     1     1     1     1     2     1     1     1     1     4     1     4 
 2276  2277  2278  2279  2280  2281  2282  2283  2284  2285  2286  2287  2288 
    3     1    12     1     1     1     1     1     1     1     1     1     1 
 2289  2290  2291  2292  2293  2294  2295  2296  2297  2298  2299  2300  2301 
    1     1     1     1     1     1     1     1     1     2     1     1     1 
 2302  2303  2304  2305  2306  2307  2308  2309  2310  2311  2312  2313  2314 
    3     6     1     2     1     1     1     1     1     1     4     1     1 
 2315  2316  2317  2318  2319  2320  2321  2322  2323  2324  2325  2326  2327 
    1     1     1     1     1     1     1     1     1     1     1     1     1 
 2328  2329  2330  2331  2332  2333  2334  2335  2336  2337  2338  2339  2340 
   12     1     1     1     1     1     1     1     1     1     3     1     1 
 2341  2342  2343  2344  2345  2346  2347  2348  2349  2350  2351  2352  2353 
    1     1     1     1     1     1     1     4     1     1     1     1     1 
 2354  2355  2356  2357  2358  2359  2360  2361  2362  2363  2364  2365  2366 
    1     1     1     1     1     1     1     2     1     1     1     2     3 
 2367  2368  2369  2370  2371  2372  2373  2374  2375  2376  2377  2378  2379 
    1     1     1     3     3     1     1     2     1     1     1     1     1 
 2380  2381  2382  2383  2384  2385  2386  2387  2388  2389  2390  2391  2392 
    1     1     1     1     3     1     2     1     1     1     1     2     1 
 2393  2394  2395  2396  2397  2398  2399  2400  2401  2402  2403  2404  2405 
    1     1     1     1     1     1     1     1     1     1     1     1     1 
 2406  2407  2408  2409  2410  2411  2412  2413  2414  2415  2416  2417  2418 
   10     1     1     1     1     1     1     1     1    12     1     1     1 
 2419  2420  2421  2422  2423  2424  2425  2426  2427  2428  2429  2430  2431 
    1     1     3     1     1     1     1     1     1     1     1     1     1 
 2432  2433  2434  2435  2436  2437  2438  2439  2440  2441  2442  2443  2444 
    1     2     1     1     1     1     2     1     2     1     1     1     1 
 2445  2446  2447  2448  2449  2450  2451  2452  2453  2454  2455  2456  2457 
    1     1     1     1     1     1     1     1     1     1     1     1     2 
 2458  2459  2460  2461  2462  2463  2464  2465  2466  2467  2468  2469  2470 
    1     1     1     2     1     2     1     3     1     1     1     1     1 
 2471  2472  2473  2474  2475  2476  2477  2478  2479  2480  2481  2482  2483 
    1     1     1     1     1     1     4     8     6     1     3     1     1 
 2484  2485  2486  2487  2488  2489  2490  2491  2492  2493  2494  2495  2496 
    1     1     1     2     1     1     1     1     1     1     1     1     1 
 2497  2498  2499  2500  2501  2502  2503  2504  2505  2506  2507  2508  2509 
    1     1     1     1     1     1     1     1     1     2     9     1     1 
 2510  2511  2512  2513  2514  2515  2516  2517  2518  2519  2520  2521  2522 
    1     1     1    12     1     1     1     2     1     1     1     1     1 
 2523  2524  2525  2526  2527  2528  2529  2530  2531  2532  2533  2534  2535 
    1     3     1     1     1     1     2     3     1     4     1     1     1 
 2536  2537  2538  2539  2540  2541  2542  2543  2544  2545  2546  2547  2548 
    2     1     1     1     1     1     1     1     1     1     1     1     1 
 2549  2550  2551  2552  2553  2554  2555  2556  2557  2558  2559  2560  2561 
    2     1     2     1     1     1     1     1     1     1     1     1     4 
 2562  2563  2564  2565  2566  2567  2568  2569  2570  2571  2572  2573  2574 
    1     1     2     1     1     2     6     1     1     1     1    10     1 
 2575  2576  2577  2578  2579  2580  2581  2582  2583  2584  2585  2586  2587 
    1     1     3     1     1     1     1     1     1     1     1     1     1 
 2588  2589  2590  2591  2592  2593  2594  2595  2596  2597  2598  2599  2600 
    1     1     1     4     1     1     1     1     1     1     1     1     1 
 2601  2602  2603  2604  2605  2606  2607  2608  2609  2610  2611  2612  2613 
    1     1     1     1     1     1     1     1     2     1     1     1     1 
 2614  2615  2616  2617  2618  2619  2620  2621  2622  2623  2624  2625  2626 
    1     1     1     1     1     1     2     1     1     1     1     1     1 
 2627  2628  2629  2630  2631  2632  2633  2634  2635  2636  2637  2638  2639 
    3     1     1     1     1     1     1     1     1     1     1     2     1 
 2640  2641  2642  2643  2644  2645  2646  2647  2648  2649  2650  2651  2652 
    1     1     1     1     1    10    10     1     2     1     1     1     1 
 2653  2654  2655  2656  2657  2658  2659  2660  2661  2662  2663  2664  2665 
    1     1     3     1     1     1     1     1     1     1     1     1     2 
 2666  2667  2668  2669  2670  2671  2672  2673  2674  2675  2676  2677  2678 
    1     2     8     2     1     1     1     1     1     1     1     1     1 
 2679  2680  2681  2682  2683  2684  2685  2686  2687  2688  2689  2690  2691 
    1     1     1     1     1     1     1     1     1     2     1     3     1 
 2692  2693  2694  2695  2696  2697  2698  2699  2700  2701  2702  2703  2704 
    1     1     8     8     1     1     1     1     2     1     2     1     1 
 2705  2706  2707  2708  2709  2710  2711  2712  2713  2714  2715  2716  2717 
    1     1     1     6     1     1     1     1     1     1     1     1     1 
 2718  2719  2720  2721  2722  2723  2724  2725  2726  2727  2728  2729  2730 
    3     1     1     3     1     1     1     1     1     2     1     1     1 
 2731  2732  2733  2734  2735  2736  2737  2738  2739  2740  2741  2742  2743 
    1     1     1     1     2     1     3     2     1     1     2     1     1 
 2744  2745  2746  2747  2748  2749  2750  2751  2752  2753  2754  2755  2756 
    1     1     1     1     1     4     1     1     1     1     8     1     1 
 2757  2758  2759  2760  2761  2762  2763  2764  2765  2766  2767  2768  2769 
    1     1     1     1     1     1     1     1     6     6     1     1     1 
 2770  2771  2772  2773  2774  2775  2776  2777  2778  2779  2780  2781  2782 
    1     3     1     3     1     1     1     2     1     1     1     1     6 
 2783  2784  2785  2786  2787  2788  2789  2790  2791  2792  2793  2794  2795 
    1     1     1     1     1     1     1     1     1     1     5     1     2 
 2796  2797  2798  2799  2800  2801  2802  2803  2804  2805  2806  2807  2808 
    1     1     1     1     1     1     1     1     1     1     1     1     1 
 2809  2810  2811  2812  2813  2814  2815  2816  2817  2818  2819  2820  2821 
    1     1     1     1     1     1     2     1     1     1    14     1     1 
 2822  2823  2824  2825  2826  2827  2828  2829  2830  2831  2832  2833  2834 
    1     1     1     1     3     1     2     1     1     5     2     1     1 
 2835  2836  2837  2838  2839  2840  2841  2842  2843  2844  2845  2846  2847 
    1     1     1     1     1     1     1     1     1     1     1     2     1 
 2848  2849  2850  2851  2852  2853  2854  2855  2856  2857  2858  2859  2860 
    1     1     1     1     1     1     1     2     1     1     1     1     2 
 2861  2862  2863  2864  2865  2866  2867  2868  2869  2870  2871  2872  2873 
    1     1     1     1     1     1     1     1     1     1     1     1     2 
 2874  2875  2876  2877  2878  2879  2880  2881  2882  2883  2884  2885  2886 
    1     1     1     1     1    12     1     1     1     1     1     1     1 
 2887  2888  2889  2890  2891  2892  2893  2894  2895  2896  2897  2898  2899 
    1     1     1     1     1     2     1     1     4     1     1     2     1 
 2900  2901  2902  2903  2904  2905  2906  2907  2908  2909  2910  2911  2912 
    1     1     1     1     1     1     1     1     1     1     1     1     1 
 2913  2914  2915  2916  2917  2918  2919  2920  2921  2922  2923  2924  2925 
    1     1     1     1     1     2     1     1     1     1     1     1     3 
 2926  2927  2928  2929  2930  2931  2932  2933  2934  2935  2936  2937  2938 
    1     1     1     1     1     2     1     1     1     1     3     1     1 
 2939  2940  2941  2942  2943  2944  2945  2946  2947  2948  2949  2950  2951 
    1     1     1     1     1     1     1     1     1     1     1     1     1 
 2952  2953  2954  2955  2956  2957  2958  2959  2960  2961  2962  2963  2964 
    1     1     1     1     1     1     1     1     1     1     1     1     1 
 2965  2966  2967  2968  2969  2970  2971  2972  2973  2974  2975  2976  2977 
    1     1     1     1     1     1     1     1     1     1     1     1     1 
 2978  2979  2980  2981  2982  2983  2984  2985  2986  2987  2988  2989  2990 
    1     1     1     1     1     3     1     1     1     1     1     2     1 
 2991  2992  2993  2994  2995  2996  2997  2998  2999  3000  3001  3002  3003 
    2     1     1     1     1     1     1     1     1     1     1     1     1 
 3004  3005  3006  3007  3008  3009  3010  3011  3012  3013  3014  3015  3016 
    1     1     1     1     1     1     2     1     1     1     1     3     1 
 3017  3018  3019  3020  3021  3022  3023  3024  3025  3026  3027  3028  3029 
    1     1     1     1     1     1     1     1     2     1     1     1     1 
 3030  3031  3032  3033  3034  3035  3036  3037  3038  3039  3040  3041  3042 
    2     1     1     1     1     1     1     2     1     1     1     1     4 
 3043  3044  3045  3046  3047  3048  3049  3050  3051  3052  3053  3054  3055 
    1     1     1     1     1     1     1     1     1     1     1     1     1 
 3056  3057  3058  3059  3060  3061  3062  3063  3064  3065  3066  3067  3068 
    1     1     1     1     1     1     1     1     3     2     1     2     1 
 3069  3070  3071  3072  3073  3074  3075  3076  3077  3078  3079  3080  3081 
    1     1     1     1     1     1     1     1     1     1     1     1     1 
 3082  3083  3084  3085  3086  3087  3088  3089  3090  3091  3092  3093  3094 
    1     2     1     1     1     1     4     1     1     1     1     1     1 
 3095  3096  3097  3098  3099  3100  3101  3102  3103  3104  3105  3106  3107 
    1     1     1     1     1     1     1     1     1     1     4     1     1 
 3108  3109  3110  3111  3112  3113  3114  3115  3116  3117  3118  3119  3120 
    1     1     1     1     1     1     1     1     1     1     1     1     2 
 3121  3122  3123  3124  3125  3126  3127  3128  3129  3130  3131  3132  3133 
    2     1     2     1     3     2     1     1     1     1     1     1     4 
 3134  3135  3136  3137  3138  3139  3140  3141  3142  3143  3144  3145  3146 
    1     2     1     1     1     1     1     1     1     1     1     1     1 
 3147  3148  3149  3150  3151  3152  3153  3154  3155  3156  3157  3158  3159 
    1     1     2     1     1     3     1     1     1     1     1     1     1 
 3160  3161  3162  3163  3164  3165  3166  3167  3168  3169  3170  3171  3172 
    1     7     1     1     8     1     1     1     1     7     1     1     1 
 3173  3174  3175  3176  3177  3178  3179  3180  3181  3182  3183  3184  3185 
    1     1     1     1     1     2     3     1     2     4     1     1     7 
 3186  3187  3188  3189  3190  3191  3192  3193  3194  3195  3196  3197  3198 
    1     1     5     1     1     1     1     1     1     1     1     1     1 
 3199  3200  3201  3202  3203  3204  3205  3206  3207  3208  3209  3210  3211 
    1     2     1     1     1     1     1     1     8    14     1     1     1 
 3212  3213  3214  3215  3216  3217  3218  3219  3220  3221  3222  3223  3224 
    1     1     1     1     6     1     1     1     1     9     2     6     1 
 3225  3226  3227  3228  3229  3230  3231  3232  3233  3234  3235  3236  3237 
    2     1     1     1     1     1     1     1     1     8     1     2     1 
 3238  3239  3240  3241  3242  3243  3244  3245  3246  3247  3248  3249  3250 
    7     1     1     1     1     1     8     1     1     1     1     1     1 
 3251  3252  3253  3254  3255  3256  3257  3258  3259  3260  3261  3262  3263 
    1     1     1     1     1     1     1     4     1     2     1     1     2 
 3264  3265  3266  3267  3268  3269  3270  3271  3272  3273  3274  3275  3276 
    1     1     1     1     1     1     1     1     1     1     4     1     1 
 3277  3278  3279  3280  3281  3282  3283  3284  3285  3286  3287  3288  3289 
    1     1     5     2     1     1     3     1     1     1    12     1     1 
 3290  3291  3292  3293  3294  3295  3296  3297  3298  3299  3300  3301  3302 
    1     1     1     1     1     1    12    14     1     4     1     1     1 
 3303  3304  3305  3306  3307  3308  3309  3310  3311  3312  3313  3314  3315 
    1     1     1     2     1     2     1     1     1     1     1     1     1 
 3316  3317  3318  3319  3320  3321  3322  3323  3324  3325  3326  3327  3328 
    2     2     1     1     1     1     1     1     1     1     1     1     1 
 3329  3330  3331  3332  3333  3334  3335  3336  3337  3338  3339  3340  3341 
    1     2     1     5     3     1     2     2     1     1     1     1     1 
 3342  3343  3344  3345  3346  3347  3348  3349  3350  3351  3352  3353  3354 
    2     3     1     1     1     3     1     4     2     1     1     1     1 
 3355  3356  3357  3358  3359  3360  3361  3362  3363  3364  3365  3366  3367 
    1     1     1     3     1     1     2     3     1     1     4     1     1 
 3368  3369  3370  3371  3372  3373  3374  3375  3376  3377  3378  3379  3380 
    1     1     1     1     1     1    10     1     1     1     1     1     1 
 3381  3382  3383  3384  3385  3386  3387  3388  3389  3390  3391  3392  3393 
    1     1     2     1     3     1     1     1     9     1     1     1     2 
 3394  3395  3396  3397  3398  3399  3400  3401  3402  3403  3404  3405  3406 
    1     1     1     1     3     1     1     2     1     4     1    15     1 
 3407  3408  3409  3410  3411  3412  3413  3414  3415  3416  3417  3418  3419 
    2     1     1     1     5     2     1     1     1     1     1     1     1 
 3420  3421  3422  3423  3424  3425  3426  3427  3428  3429  3430  3431  3432 
    1     2     1     1     1     1     1     1     1     4     2     1     1 
 3433  3434  3435  3436  3437  3438  3439  3440  3441  3442  3443  3444  3445 
    1     1     1     1     1     3     1     1     1     1     1     1     1 
 3446  3447  3448  3449  3450  3451  3452  3453  3454  3455  3456  3457  3458 
    1     1     1     1     1     1     1     1     1     1     4     2     1 
 3459  3460  3461  3462  3463  3464  3465  3466  3467  3468  3469  3470  3471 
    1     2     1     1     1     1     1     1     1     1     1     1     1 
 3472  3473  3474  3475  3476  3477  3478  3479  3480  3481  3482  3483  3484 
    4     1     5     1     1     2     1     1     1     1     1     1     1 
 3485  3486  3487  3488  3489  3490  3491  3492  3493  3494  3495  3496  3497 
    1     1     1     1     1     6     4     1     1     1     1     1     1 
 3498  3499  3500  3501  3502  3503  3504  3505  3506  3507  3508  3509  3510 
    1     2     1     1     1     1     1     1     4     1     1     1     1 
 3511  3512  3513  3514  3515  3516  3517  3518  3519  3520  3521  3522  3523 
    1     1     1     1     1     1     1     1     1     1     1     9     1 
 3524  3525  3526  3527  3528  3529  3530  3531  3532  3533  3534  3535  3536 
    1     1     3     1     1     1     1     1     1     1     1     1     5 
 3537  3538  3539  3540  3541  3542  3543  3544  3545  3546  3547  3548  3549 
    1     3     4     1    41     1     1     4     1     1     1     1     1 
 3550  3551  3552  3553  3554  3555  3556  3557  3558  3559  3560  3561  3562 
    2     3     1     2     1     2     1     2     1     1     2     1     1 
 3563  3564  3565  3566  3567  3568  3569  3570  3571  3572  3573  3574  3575 
    1     1     1     1     1     1    11    12     1     1     5     1     1 
 3576  3577  3578  3579  3580  3581  3582  3583  3584  3585  3586  3587  3588 
    1     1     1     1     5     1     1     6     1     1     1     1     1 
 3589  3590  3591  3592  3593  3594  3595  3596  3597  3598  3599  3600  3601 
    1     1     1     1     1     1     1     1     1     1    10     1     1 
 3602  3603  3604  3605  3606  3607  3608  3609  3610  3611  3612  3613  3614 
    1     1     1     1     1     2     1     1    41     1     1     1     1 
 3615  3616  3617  3618  3619  3620  3621  3622  3623  3624  3625  3626  3627 
    1     1     1     1     4     1     1     1     1     1     1     1     1 
 3628  3629  3630  3631  3632  3633  3634  3635  3636  3637  3638  3639  3640 
    1     1     1     1     1     1     1     1     1     1     1     1     1 
 3641  3642  3643  3644  3645  3646  3647  3648  3649  3650  3651  3652  3653 
    1     1     1     1     1     1     1     1     1     1     1     1     1 
 3654  3655  3656  3657  3658  3659  3660  3661  3662  3663  3664  3665  3666 
    1     1     1     1     1     1     1     1     1     2     1     1     2 
 3667  3668  3669  3670  3671  3672  3673  3674  3675  3676  3677  3678  3679 
    1     1     1     2     1     1     1     1     1     1     1     5     1 
 3680  3681  3682  3683  3684  3685  3686  3687  3688  3689  3690  3691  3692 
    1     1     1     1     1     2     1     1     1     1     1     1     1 
 3693  3694  3695  3696  3697  3698  3699  3700  3701  3702  3703  3704  3705 
    2     1     1     1     1     1     7     1     1     1     1     1     1 
 3706  3707  3708  3709  3710  3711  3712  3713  3714  3715  3716  3717  3718 
    1     1     2     1     2     2     1     1     1     4     1     1     2 
 3719  3720  3721  3722  3723  3724  3725  3726  3727  3728  3729  3730  3731 
    1     5     4     1     1     9     3     1     1     2     1     1     1 
 3732  3733  3734  3735  3736  3737  3738  3739  3740  3741  3742  3743  3744 
    1     2     1     1     1     1     1     1     1     1     1     1     4 
 3745  3746  3747  3748  3749  3750  3751  3752  3753  3754  3755  3756  3757 
    1     2     1     1     1     1     1    10     1     1     1     1     1 
 3758  3759  3760  3761  3762  3763  3764  3765  3766  3767  3768  3769  3770 
    1     1     1     1     1     1     1     1     1     7     1     1     1 
 3771  3772  3773  3774  3775  3776  3777  3778  3779  3780  3781  3782  3783 
    1     2     1     1     1     1     1     2     1     1     1     1     1 
 3784  3785  3786  3787  3788  3789  3790  3791  3792  3793  3794  3795  3796 
    1     1     4     1     1     1     1     1     1     1     1     1     1 
 3797  3798  3799  3800  3801  3802  3803  3804  3805  3806  3807  3808  3809 
    1     1     1     1     1     1     1     1     1     1     1     1     1 
 3810  3811  3812  3813  3814  3815  3816  3817  3818  3819  3820  3821  3822 
    1     1     1     1     1     1     1     1     1     1     1     1     1 
 3823  3824  3825  3826  3827  3828  3829  3830  3831  3832  3833  3834  3835 
    1     1     1     1     3     1     1     1     1     1     1     1     1 
 3836  3837  3838  3839  3840  3841  3842  3843  3844  3845  3846  3847  3848 
    1     1     1     1     3     1     1     1     1     1     1     1     1 
 3849  3850  3851  3852  3853  3854  3855  3856  3857  3858  3859  3860  3861 
    9     1     1     1     1     1     1     1     1     1     1     1     1 
 3862  3863  3864  3865  3866  3867  3868  3869  3870  3871  3872  3873  3874 
    1     1     1     1     1     2     1     1     1     1     1     1     1 
 3875  3876  3877  3878  3879  3880  3881  3882  3883  3884  3885  3886  3887 
    1     1     1     1     1     1     1     1     1     1     1     1     1 
 3888  3889  3890  3891  3892  3893  3894  3895  3896  3897  3898  3899  3900 
    1     1     1     1     1     1     1     2     1     1     1     1     1 
 3901  3902  3903  3904  3905  3906  3907  3908  3909  3910  3911  3912  3913 
    1     1     1     1     1     1     1     1     1     1     1     2     2 
 3914  3915  3916  3917  3918  3919  3920  3921  3922  3923  3924  3925  3926 
    1     1     1     1     1     1     1     1     1     1     1     1     1 
 3927  3928  3929  3930  3931  3932  3933  3934  3935  3936  3937  3938  3939 
    1     1     1     1     1     1     1     7     1     1     1     1     1 
 3940  3941  3942  3943  3944  3945  3946  3947  3948  3949  3950  3951  3952 
    1     1     1     5     1     1     2     1     1     1     1     1     1 
 3953  3954  3955  3956  3957  3958  3959  3960  3961  3962  3963  3964  3965 
    1     9     1     1     1     4     1     1     1     1     1     1     1 
 3966  3967  3968  3969  3970  3971  3972  3973  3974  3975  3976  3977  3978 
    1     1     1     1     1     1     1     1     3     1     1     1     2 
 3979  3980  3981  3982  3983  3984  3985  3986  3987  3988  3989  3990  3991 
    1     1    18     1     1     1     3     1     1     1     1     1     1 
 3992  3993  3994  3995  3996  3997  3998  3999  4000  4001  4002  4003  4004 
    1     1     2     1     3     1     2     1     1     1     1     1     1 
 4005  4006  4007  4008  4009  4010  4011  4012  4013  4014  4015  4016  4017 
    4     1     1     1     1     9     1     1     1     1     1     1     1 
 4018  4019  4020  4021  4022  4023  4024  4025  4026  4027  4028  4029  4030 
    1     1     1     1     1     1     1     1     1     1     1     1     1 
 4031  4032  4033  4034  4035  4036  4037  4038  4039  4040  4041  4042  4043 
    3     1     2     1     1     2     2     1     1     1     1     1     1 
 4044  4045  4046  4047  4048  4049  4050  4051  4052  4053  4054  4055  4056 
    1     1     1     1     1     1     3     2     1     1     1     1     1 
 4057  4058  4059  4060  4061  4062  4063  4064  4065  4066  4067  4068  4069 
    1     1     2     1     1     2     2     5     3     1     1     1     2 
 4070  4071  4072  4073  4074  4075  4076  4077  4078  4079  4080  4081  4082 
    1     1     1     1     1     1     1     1     1     1     1     1     1 
 4083  4084  4085  4086  4087  4088  4089  4090  4091  4092  4093  4094  4095 
    5     1     1     1     1     3     4     1     1     1     1     1     1 
 4096  4097  4098  4099  4100  4101  4102  4103  4104  4105  4106  4107  4108 
    1     1     6     1     1     9     2     1     1     2     3     2     1 
 4109  4110  4111  4112  4113  4114  4115  4116  4117  4118  4119  4120  4121 
    1     1     1     5     1     1     1     1     1     3    15     2     1 
 4122  4123  4124  4125  4126  4127  4128  4129  4130  4131  4132  4133  4134 
    1     1     1     1     1     1     3     1     1     1     1     1     1 
 4135  4136  4137  4138  4139  4140  4141  4142  4143  4144  4145  4146  4147 
    1     1     1     1     1     1     1     1     1     1     2     1     1 
 4148  4149  4150  4151  4152  4153  4154  4155  4156  4157  4158  4159  4160 
    1     1     1     1     1     1     1     1     1     1     1     1     1 
 4161  4162  4163  4164  4165  4166  4167  4168  4169  4170  4171  4172  4173 
    3     1     9     1     1     1     1     1     1     1     1     1     3 
 4174  4175  4176  4177  4178  4179  4180  4181  4182  4183  4184  4185  4186 
    2    11     1     1     1     1     1     1     1     1     1     1     1 
 4187  4188  4189  4190  4191  4192  4193  4194  4195  4196  4197  4198  4199 
    1     3     8     1     4     1     1     1     1     1     4     1     1 
 4200  4201  4202  4203  4204  4205  4206  4207  4208  4209  4210  4211  4212 
    1     1     1     1     1     1     1     1     1     1     1     1     1 
 4213  4214  4215  4216  4217  4218  4219  4220  4221  4222  4223  4224  4225 
    1     2     1     2     1     1     1     1     3     1     1     1     1 
 4226  4227  4228  4229  4230  4231  4232  4233  4234  4235  4236  4237  4238 
    1     1     2     1     1     1     1     1     1     1     1     1     1 
 4239  4240  4241  4242  4243  4244  4245  4246  4247  4248  4249  4250  4251 
    1     1     1     1     1     1     1     1     1     1     2     1     1 
 4252  4253  4254  4255  4256  4257  4258  4259  4260  4261  4262  4263  4264 
    1     1    10     6     1     1     1     2     1     1     3     1     1 
 4265  4266  4267  4268  4269  4270  4271  4272  4273  4274  4275  4276  4277 
    1     3     1     1     1     1     1     1     1     4     4     3     1 
 4278  4279  4280  4281  4282  4283  4284  4285  4286  4287  4288  4289  4290 
    1     1     1     1     1     3     6     3     3     1     1     2     1 
 4291  4292  4293  4294  4295  4296  4297  4298  4299  4300  4301  4302  4303 
    1     1     2     4     1     1     1     1     1     1     1    15     1 
 4304  4305  4306  4307  4308  4309  4310  4311  4312  4313  4314  4315  4316 
    1     4     1     1     1     1     1     3     1     1     1     1     1 
 4317  4318  4319  4320  4321  4322  4323  4324  4325  4326  4327  4328  4329 
    1     1     1     3     1     1     1     1     1     1     1     1     1 
 4330  4331  4332  4333  4334  4335  4336  4337  4338  4339  4340  4341  4342 
    1     1     3     1     1     2     2     1     1     2     1     1     2 
 4343  4344  4345  4346  4347  4348  4349  4350  4351  4352  4353  4354  4355 
    1     1     2     1     1     2     1     1     1     1     1     1     3 
 4356  4357  4358  4359  4360  4361  4362  4363  4364  4365  4366  4367  4368 
    1     1     1     1     1     1     1     1     3     1     1     1     1 
 4369  4370  4371  4372  4373  4374  4375  4376  4377  4378  4379  4380  4381 
    1    15     4     1     4     1     1     1     1     1     1     1     1 
 4382  4383  4384  4385  4386  4387  4388  4389  4390  4391  4392  4393  4394 
    1     1     1     1     1     1     1     2     1     1     1     1     1 
 4395  4396  4397  4398  4399  4400  4401  4402  4403  4404  4405  4406  4407 
    1     1     1     1     1     1     1     2     1    12     1     1     1 
 4408  4409  4410  4411  4412  4413  4414  4415  4416  4417  4418  4419  4420 
    1     1     1     1     7     1     1     1     1     1     1    14     3 
 4421  4422  4423  4424  4425  4426  4427  4428  4429  4430  4431  4432  4433 
    1     1     1     1     1     1     1     1     1     1     1     3     1 
 4434  4435  4436  4437  4438  4439  4440  4441  4442  4443  4444  4445  4446 
    1     1    15     1     1     1     1     1     1     1     1     1     3 
 4447  4448  4449  4450  4451  4452  4453  4454  4455  4456  4457  4458  4459 
    1     2     1     1     1     3     1     1     1     1     1     1     1 
 4460  4461  4462  4463  4464  4465  4466  4467  4468  4469  4470  4471  4472 
    1     1     1     2     1     1     1     1     1     1     2     1     1 
 4473  4474  4475  4476  4477  4478  4479  4480  4481  4482  4483  4484  4485 
    1     1     1     1     1     3     1     1     1     1     1     4     2 
 4486  4487  4488  4489  4490  4491  4492  4493  4494  4495  4496  4497  4498 
    1     1     1     1     1     1     1     3     1    14     1     1     1 
 4499  4500  4501  4502  4503  4504  4505  4506  4507  4508  4509  4510  4511 
    1     5     1     1     2     5     1     1     1     1     1     1     5 
 4512  4513  4514  4515  4516  4517  4518  4519  4520  4521  4522  4523  4524 
    3     1     1     1     1     2     1    14     4     1     1     1     1 
 4525  4526  4527  4528  4529  4530  4531  4532  4533  4534  4535  4536  4537 
    1     1     3     1    14     9     1     1     1     1     1     1     2 
 4538  4539  4540  4541  4542  4543  4544  4545  4546  4547  4548  4549  4550 
    1     1     1     1     1     1     1     1     1     1     1     1     1 
 4551  4552  4553  4554  4555  4556  4557  4558  4559  4560  4561  4562  4563 
    1     1     1     2     2     1     4     1     1     1     1     1     1 
 4564  4565  4566  4567  4568  4569  4570  4571  4572  4573  4574  4575  4576 
    2     1     1     2     1     1     1     1     1     1     1    10     1 
 4577  4578  4579  4580  4581  4582  4583  4584  4585  4586  4587  4588  4589 
    1     1     1     1     3     1     1     1     1     1     1     1     1 
 4590  4591  4592  4593  4594  4595  4596  4597  4598  4599  4600  4601  4602 
    1     1     1     1     1     1     1     1     1     1     1     1     1 
 4603  4604  4605  4606  4607  4608  4609  4610  4611  4612  4613  4614  4615 
    1     1     1     1     1     1    14     1     1    12    14     1    13 
 4616  4617  4618  4619  4620  4621  4622  4623  4624  4625  4626  4627  4628 
    2     2     1     1     1     1     1     1     1     8     1     1     1 
 4629  4630  4631  4632  4633  4634  4635  4636  4637  4638  4639  4640  4641 
    1     1     1     1     3     1     1     1     1     1     1     1     1 
 4642  4643  4644  4645  4646  4647  4648  4649  4650  4651  4652  4653  4654 
    1     2     1     1     1     1     1     1     1     1     1     1     1 
 4655  4656  4657  4658  4659  4660  4661  4662  4663  4664  4665  4666  4667 
    1     1     1     1     1     1     1     1     1     1     2     5     1 
 4668  4669  4670  4671  4672  4673  4674  4675  4676  4677  4678  4679  4680 
    1     1     1     1     1     1     1     1     4     1     1     1     1 
 4681  4682  4683  4684  4685  4686  4687  4688  4689  4690  4691  4692  4693 
    1     1     1     3     2     1     1     1     1     1     1     1     1 
 4694  4695  4696  4697  4698  4699  4700  4701  4702  4703  4704  4705  4706 
    1     1     1     1     1     1     1     1     1     1     1     1     1 
 4707  4708  4709  4710  4711  4712  4713  4714  4715  4716  4717  4718  4719 
    1     1     3     3     1     1     4     1     1     3     1     1     1 
 4720  4721  4722  4723  4724  4725  4726  4727  4728  4729  4730  4731  4732 
    1     1     1     1     1     2     1     1     1     1    14     1     1 
 4733  4734  4735  4736  4737  4738  4739  4740  4741  4742  4743  4744  4745 
    4     1     1     3     2     1     1     1     1     1     1     3     3 
 4746  4747  4748  4749  4750  4751  4752  4753  4754  4755  4756  4757  4758 
    1     1     1     1     1     1     2     1     1     1     1     1     1 
 4759  4760  4761  4762  4763  4764  4765  4766  4767  4768  4769  4770  4771 
    1     1     1     1     1     1     1     1     4     2     1     1     1 
 4772  4773  4774  4775  4776  4777  4778  4779  4780  4781  4782  4783  4784 
    1     1     1     1     1     1     1     7     1     1     1     1     1 
 4785  4786  4787  4788  4789  4790  4791  4792  4793  4794  4795  4796  4797 
    1     1     1     5     1     1     1     1     1     1     1     1     1 
 4798  4799  4800  4801  4802  4803  4804  4805  4806  4807  4808  4809  4810 
    1     1     1     1     1     1     1     1     1     2     1     2     1 
 4811  4812  4813  4814  4815  4816  4817  4818  4819  4820  4821  4822  4823 
    1     1     1     3     1     1     1     1     1     1     1     1     1 
 4824  4825  4826  4827  4828  4829  4830  4831  4832  4833  4834  4835  4836 
    8     1     1     1     2     1     1     1     1     1     1     1     1 
 4837  4838  4839  4840  4841  4842  4843  4844  4845  4846  4847  4848  4849 
    1     1     1     1     1     2     3     1     1     3     1     2     1 
 4850  4851  4852  4853  4854  4855  4856  4857  4858  4859  4860  4861  4862 
    1     1     1     1     1     1     1     1     1     1     1     1     1 
 4863  4864  4865  4866  4867  4868  4869  4870  4871  4872  4873  4874  4875 
    2     1     1     1     5     1     1     1     1     1     1     1    14 
 4876  4877  4878  4879  4880  4881  4882  4883  4884  4885  4886  4887  4888 
    1     1     1     1     1     1     1     1     1     3    41    13     1 
 4889  4890  4891  4892  4893  4894  4895  4896  4897  4898  4899  4900  4901 
    1     1     1     1     1     1    10     2     2     1     1     2     1 
 4902  4903  4904  4905  4906  4907  4908  4909  4910  4911  4912  4913  4914 
    1     1     1     1     1     1     1     1     1     1     1     3     1 
 4915  4916  4917  4918  4919  4920  4921  4922  4923  4924  4925  4926  4927 
    2     1     1     1     1     1     1     1     1     1     1     1     1 
 4928  4929  4930  4931  4932  4933  4934  4935  4936  4937  4938  4939  4940 
    1     1     1     1     2     1    14     1     5     1     1     1     5 
 4941  4942  4943  4944  4945  4946  4947  4948  4949  4950  4951  4952  4953 
    1     1     7     8     1     1     1     1     1     1     1     1    15 
 4954  4955  4956  4957  4958  4959  4960  4961  4962  4963  4964  4965  4966 
   12     1     1     1     1     1     1     1     1     1     1     1     1 
 4967  4968  4969  4970  4971  4972  4973  4974  4975  4976  4977  4978  4979 
    1     4     1     1     1     1     1     1     4     3     1     1     1 
 4980  4981  4982  4983  4984  4985  4986  4987  4988  4989  4990  4991  4992 
    1     1     1     1     1     1     1     1     1     1     1     1     9 
 4993  4994  4995  4996  4997  4998  4999  5000  5001  5002  5003  5004  5005 
    1     1     1     1     1     1     1    12     5     1     1     1     1 
 5006  5007  5008  5009  5010  5011  5012  5013  5014  5015  5016  5017  5018 
    1     1     1     1     3     1     1     1     1     1     1     1     1 
 5019  5020  5021  5022  5023  5024  5025  5026  5027  5028  5029  5030  5031 
    1     1     1    15     1     1     2     1     1     1     1     3     3 
 5032  5033  5034  5035  5036  5037  5038  5039  5040  5041  5042  5043  5044 
    3     1     4     1     1     1     1     1     1     2     3     1     1 
 5045  5046  5047  5048  5049  5050  5051  5052  5053  5054  5055  5056  5057 
   18     8    13     1     1     5     3     7     1     1     1     1     1 
 5058  5059  5060  5061  5062  5063  5064  5065  5066  5067  5068  5069  5070 
    1     1     1     1     1     1     1     1    15     1     1     1     2 
 5071  5072  5073  5074  5075  5076  5077  5078  5079  5080  5081  5082  5083 
    1     1     1     1     1     1     1     1     1     1     1     1     1 
 5084  5085  5086  5087  5088  5089  5090  5091  5092  5093  5094  5095  5096 
    1     1     1     1     1     1     1     1     1     1     1     3     1 
 5097  5098  5099  5100  5101  5102  5103  5104  5105  5106  5107  5108  5109 
    1     1     1     1     1     1     1    10     1     1     3     1     1 
 5110  5111  5112  5113  5114  5115  5116  5117  5118  5119  5120  5121  5122 
    1     1     1     1     1     1     1     1     1     1     1     4     7 
 5123  5124  5125  5126  5127  5128  5129  5130  5131  5132  5133  5134  5135 
    1    18     1     1     1     1     1     6     1     1     1     1     1 
 5136  5137  5138  5139  5140  5141  5142  5143  5144  5145  5146  5147  5148 
    1     1     1     1     1     1     1     3     1     1     1     1     1 
 5149  5150  5151  5152  5153  5154  5155  5156  5157  5158  5159  5160  5161 
    1     1     3    10     1     1     1     1     1     1     1     1     2 
 5162  5163  5164  5165  5166  5167  5168  5169  5170  5171  5172  5173  5174 
    1     1     4     1     1     1     1     1     1     1     1     1     1 
 5175  5176  5177  5178  5179  5180  5181  5182  5183  5184  5185  5186  5187 
    2     2     1     1     1     3     1     1     1     2     3     1     1 
 5188  5189  5190  5191  5192  5193  5194  5195  5196  5197  5198  5199  5200 
    1     1     1     3     1     1     1     7     1     1     1     1     1 
 5201  5202  5203  5204  5205  5206  5207  5208  5209  5210  5211  5212  5213 
    1     1     1     1     1     1     1     1     1     1     1     1     2 
 5214  5215  5216  5217  5218  5219  5220  5221  5222  5223  5224  5225  5226 
    1     1     1     1     1     1     1     1     1     2     3    41     2 
 5227  5228  5229  5230  5231  5232  5233  5234  5235  5236  5237  5238  5239 
    1     1     1     3     2     1     1     1     3     1     7     1     2 
 5240  5241  5242  5243  5244  5245  5246  5247  5248  5249  5250  5251  5252 
    1     1     2     1     1     1     1     3     1     1    10     1     1 
 5253  5254  5255  5256  5257  5258  5259  5260  5261  5262  5263  5264  5265 
    2     1     1     1     1     1     1     1     5     1     1     1     1 
 5266  5267  5268  5269  5270  5271  5272  5273  5274  5275  5276  5277  5278 
    1     1     1     1     1     1     1     1     1     3     1     5     4 
 5279  5280  5281  5282  5283  5284  5285  5286  5287  5288  5289  5290  5291 
    1     1     1     1     1     1     1     1     5     5     1     1     1 
 5292  5293  5294  5295  5296  5297  5298  5299  5300  5301  5302  5303  5304 
    1     2     5     1     1     3     1    12     1     1     1    11     4 
 5305  5306  5307  5308  5309  5310  5311  5312  5313  5314  5315  5316  5317 
    1     1     1     1    41     1     1     3     1     1     7     1     1 
 5318  5319  5320  5321  5322  5323  5324  5325  5326  5327  5328  5329  5330 
    1     1     1     4     3     1     1     1     1     1     1     1     1 
 5331  5332  5333  5334  5335  5336  5337  5338  5339  5340  5341  5342  5343 
    1     1     3     1     1     5     1     3     1     1     1     1     1 
 5344  5345  5346  5347  5348  5349  5350  5351  5352  5353  5354  5355  5356 
    1     1     1     1     8     1     1     1     1     1     2    14     3 
 5357  5358  5359  5360  5361  5362  5363  5364  5365  5366  5367  5368  5369 
    1     1     1     1     1     1    10     1    10     1     1     1     1 
 5370  5371  5372  5373  5374  5375  5376  5377  5378  5379  5380  5381  5382 
    1     2     1     1     3     1     3     3     1     1     2     1     1 
 5383  5384  5385  5386  5387  5388  5389  5390  5391  5392  5393  5394  5395 
    1     4     1     1     1     1     1     1     1     8     5    41     1 
 5396  5397  5398  5399  5400  5401  5402  5403  5404  5405  5406  5407  5408 
    8     1     1     1     1     1     3     1     1     2     1     1     1 
 5409  5410  5411  5412  5413  5414  5415  5416  5417  5418  5419  5420  5421 
    2     1     1     1     1     1     1     1     1     1     1     1     1 
 5422  5423  5424  5425  5426  5427  5428  5429  5430  5431  5432  5433  5434 
    1     1     1     1     1     1     1     1     1     1     1     1     1 
 5435  5436  5437  5438  5439  5440  5441  5442  5443  5444  5445  5446  5447 
    1     1     7     1     7     1     1     1     1     1     1     1     3 
 5448  5449  5450  5451  5452  5453  5454  5455  5456  5457  5458  5459  5460 
    1     1     3     1     1     1     1     1     1     1     1     1     1 
 5461  5462  5463  5464  5465  5466  5467  5468  5469  5470  5471  5472  5473 
    1     1     4     4     1     1     1     4     1     1     1     1     5 
 5474  5475  5476  5477  5478  5479  5480  5481  5482  5483  5484  5485  5486 
    2    41     1     1     1     2     1     1     1     1     1     1     1 
 5487  5488  5489  5490  5491  5492  5493  5494  5495  5496  5497  5498  5499 
    1     1     1    13     1     1     1     1     1     1     1     3     1 
 5500  5501  5502  5503  5504  5505  5506  5507  5508  5509  5510  5511  5512 
    1     1     1     1     1     3     1     1     1     1     1     1     1 
 5513  5514  5515  5516  5517  5518  5519  5520  5521  5522  5523  5524  5525 
    1     1     1     1     1     1     1     5     1     1     1     1     7 
 5526  5527  5528  5529  5530  5531  5532  5533  5534  5535  5536  5537  5538 
    1     1     3     1     5     3     1     1     1     2     3     1     1 
 5539  5540  5541  5542  5543  5544  5545  5546  5547  5548  5549  5550  5551 
    1     1     1     1     1     2     1     1     1     1     1     1     5 
 5552  5553  5554  5555  5556  5557  5558  5559  5560  5561  5562  5563  5564 
    2     2    41     1     1     2     1     1     1     1     1     1     1 
 5565  5566  5567  5568  5569  5570  5571  5572  5573  5574  5575  5576  5577 
    1     1     2     1     1     3     1     1     1     1     1     1    15 
 5578  5579  5580  5581  5582  5583  5584  5585  5586  5587  5588  5589  5590 
    1     1     1     1     1     1     2     1     1     1     1     1    13 
 5591  5592  5593  5594  5595  5596  5597  5598  5599  5600  5601  5602  5603 
    1     1     2     1     1     1     1     4     4     1     5     1     1 
 5604  5605  5606  5607  5608  5609  5610  5611  5612  5613  5614  5615  5616 
    1     1     1     1     1     1     1     1    41     1     1     5     1 
 5617  5618  5619  5620  5621  5622  5623  5624  5625  5626  5627  5628  5629 
    1     1     1     1     1     1     1     1     1     2     1     1     1 
 5630  5631  5632  5633  5634  5635  5636  5637  5638  5639  5640  5641  5642 
    1     1     2     1     9     1     1     1     1    10     1     1     1 
 5643  5644  5645  5646  5647  5648  5649  5650  5651  5652  5653  5654  5655 
   12    12     1     1     1     1     1     1     1     1     1     1     8 
 5656  5657  5658  5659  5660  5661  5662  5663  5664  5665  5666  5667  5668 
    2     1     1    12     1     1     1     1     1     1     1     1     2 
 5669  5670  5671  5672  5673  5674  5675  5676  5677  5678  5679  5680  5681 
    1     2     1     1     1     1     1     1     1     1     1     1     1 
 5682  5683  5684  5685  5686  5687  5688  5689  5690  5691  5692  5693  5694 
    1     1     1     1     1     1     1     1     1    10     2     1     8 
 5695  5696  5697  5698  5699  5700  5701  5702  5703  5704  5705  5706  5707 
    1     2     1     1     1     1    14     1     1     1     1     1     1 
 5708  5709  5710  5711  5712  5713  5714  5715  5716  5717  5718  5719  5720 
    3     1     1     1     1     1     1     2     1     5     1     4     1 
 5721  5722  5723  5724  5725  5726  5727  5728  5729  5730  5731  5732  5733 
    1     1     1     1     1     1     1     1     1     1     1     2     1 
 5734  5735  5736  5737  5738  5739  5740  5741  5742  5743  5744  5745  5746 
    1     1     1     1     1     1     1     3     1     1     7    12     1 
 5747  5748  5749  5750  5751  5752  5753  5754  5755  5756  5757  5758  5759 
    1     1     1     2     1     1     1     1     2     1     1     1     1 
 5760  5761  5762  5763  5764  5765  5766  5767  5768  5769  5770  5771  5772 
    1     1     1     1     1     3    41     1     1     3     1     1     1 
 5773  5774  5775  5776  5777  5778  5779  5780  5781  5782  5783  5784  5785 
    1     1     8     1     1     1     1     1     1     1     9     1     4 
 5786  5787  5788  5789  5790  5791  5792  5793  5794  5795  5796  5797  5798 
    1     1     1     5     2     1     1     1     5     1     1     1     1 
 5799  5800  5801  5802  5803  5804  5805  5806  5807  5808  5809  5810  5811 
    1     1     1     1     1     1     1     1     1     1     1     2     1 
 5812  5813  5814  5815  5816  5817  5818  5819  5820  5821  5822  5823  5824 
    1     1     1     1     1     1     1     1     1     1     1     1     1 
 5825  5826  5827  5828  5829  5830  5831  5832  5833  5834  5835  5836  5837 
    1     1     1     1     1     1     1     1     2     1     1     1     1 
 5838  5839  5840  5841  5842  5843  5844  5845  5846  5847  5848  5849  5850 
    1     1     3     2     1     1     1     1     1     1     1     1     1 
 5851  5852  5853  5854  5855  5856  5857  5858  5859  5860  5861  5862  5863 
    1     1     1     1     3     1     1     3     1     1     1     1     1 
 5864  5865  5866  5867  5868  5869  5870  5871  5872  5873  5874  5875  5876 
    1     1     2     1     1     4     2     1     1     1     1     3     1 
 5877  5878  5879  5880  5881  5882  5883  5884  5885  5886  5887  5888  5889 
    1     1     1     1     1     1     1     1    14     1     1     1     1 
 5890  5891  5892  5893  5894  5895  5896  5897  5898  5899  5900  5901  5902 
    1     1     1     1     1     1     1     1     4     3     1     1    12 
 5903  5904  5905  5906  5907  5908  5909  5910  5911  5912  5913  5914  5915 
    1     1     1     1     1     1     2     1     1     1     1     1     1 
 5916  5917  5918  5919  5920  5921  5922  5923  5924  5925  5926  5927  5928 
    1     1     1     1     1     1     7     1     1     1     1     1     4 
 5929  5930  5931  5932  5933  5934  5935  5936  5937  5938  5939  5940  5941 
    1     1     1     1     1     1     1     2     2     1     1     3     1 
 5942  5943  5944  5945  5946  5947  5948  5949  5950  5951  5952  5953  5954 
    1     1     2     1     1     1     1     1     1     1     1     1     1 
 5955  5956  5957  5958  5959  5960  5961  5962  5963  5964  5965  5966  5967 
    1     4     1     1     1     9     1     1     1     1     1     1     1 
 5968  5969  5970  5971  5972  5973  5974  5975  5976  5977  5978  5979  5980 
    1     1     1     3     1     1     1     1     3     1    12     1     1 
 5981  5982  5983  5984  5985  5986  5987  5988  5989  5990  5991  5992  5993 
    1     1     1     1     1     1     1     3     1     1     1     1     1 
 5994  5995  5996  5997  5998  5999  6000  6001  6002  6003  6004  6005  6006 
    1     1     1     1     1     1     1     1     1     1     1     1     1 
 6007  6008  6009  6010  6011  6012  6013  6014  6015  6016  6017  6018  6019 
   10     2     4     1     4     1     1     1     1     1     1     1     1 
 6020  6021  6022  6023  6024  6025  6026  6027  6028  6029  6030  6031  6032 
    1     1     1     1     1     1    18     1     1     1     1     1     1 
 6033  6034  6035  6036  6037  6038  6039  6040  6041  6042  6043  6044  6045 
    1     1     1     1     1     1     1     1     1     1     1     1     1 
 6046  6047  6048  6049  6050  6051  6052  6053  6054  6055  6056  6057  6058 
    1     1     1     1     1     1     1     1     1     1     1     1    10 
 6059  6060  6061  6062  6063  6064  6065  6066  6067  6068  6069  6070  6071 
    1     1     6     1     1     1     1     1     3     1     1     1     1 
 6072  6073  6074  6075  6076  6077  6078  6079  6080  6081  6082  6083  6084 
    1     1     1     1     1     1     1     1     1     1     1     1     1 
 6085  6086  6087  6088  6089  6090  6091  6092  6093  6094  6095  6096  6097 
    1     1     1     1     1     1     1     7     1     1     1     1     1 
 6098  6099  6100  6101  6102  6103  6104  6105  6106  6107  6108  6109  6110 
    1     1     2     1     1     1     1     1     1     1     1     1     2 
 6111  6112  6113  6114  6115  6116  6117  6118  6119  6120  6121  6122  6123 
    9     2     3     1     2     1     1     1     1     1     1     1     1 
 6124  6125  6126  6127  6128  6129  6130  6131  6132  6133  6134  6135  6136 
    1     1     1     9     1     1     1     1     1     1     1     1     1 
 6137  6138  6139  6140  6141  6142  6143  6144  6145  6146  6147  6148  6149 
    1     1    41     2     1     1     1     1     1     1     1     1     2 
 6150  6151  6152  6153  6154  6155  6156  6157  6158  6159  6160  6161  6162 
    1     1     1     1     5     1     1     1     1     1     1     1     1 
 6163  6164  6165  6166  6167  6168  6169  6170  6171  6172  6173  6174  6175 
    1     9     1     1     1     1     1     1     1     1     1     1     1 
 6176  6177  6178  6179  6180  6181  6182  6183  6184  6185  6186  6187  6188 
    1     1     1     3     1     1     1     2     1     1     1    41     1 
 6189  6190  6191  6192  6193  6194  6195  6196  6197  6198  6199  6200  6201 
    1     1     2     1     1     1     1     1     1     1     1     1     1 
 6202  6203  6204  6205  6206  6207  6208  6209  6210  6211  6212  6213  6214 
    1     1     1     1     1     1     1     1     1     1     1     1     1 
 6215  6216  6217  6218  6219  6220  6221  6222  6223  6224  6225  6226  6227 
    1     1     1     1     1     1     1     1     1     1     1     1     1 
 6228  6229  6230  6231  6232  6233  6234  6235  6236  6237  6238  6239  6240 
    2     1     1     1     1     1     1     1     1     2     1     1     1 
 6241  6242  6243  6244  6245  6246  6247  6248  6249  6250  6251  6252  6253 
    1     2     1     1     1     1     1     1     1     1     2     5     1 
 6254  6255  6256  6257  6258  6259  6260  6261  6262  6263  6264  6265  6266 
    1     1     1     1     1     1     1     1     1     1     1     1     1 
 6267  6268  6269  6270  6271  6272  6273  6274  6275  6276  6277  6278  6279 
    1     1     1     1     1     1     1     1     1     1     1     3     1 
 6280  6281  6282  6283  6284  6285  6286  6287  6288  6289  6290  6291  6292 
    1     1     1     1     1     1     1     1     1     1     2     1     1 
 6293  6294  6295  6296  6297  6298  6299  6300  6301  6302  6303  6304  6305 
    1     1     1     1     1     1     1     1     1     1     1     1     1 
 6306  6307  6308  6309  6310  6311  6312  6313  6314  6315  6316  6317  6318 
    1     1     1     1     1     1     2     1     1     1     1     1     1 
 6319  6320  6321  6322  6323  6324  6325  6326  6327  6328  6329  6330  6331 
    1     1     1     9     1     1     1     1     1     1     1     1     1 
 6332  6333  6334  6335  6336  6337  6338  6339  6340  6341  6342  6343  6344 
    1     1     1     1     1     1     1     1     1     1     1     1     1 
 6345  6346  6347  6348  6349  6350  6351  6352  6353  6354  6355  6356  6357 
    1     1     1     1     1     3     1     1     1     1     1     1     1 
 6358  6359  6360  6361  6362  6363  6364  6365  6366  6367  6368  6369  6370 
    1     1     1     1     1     1     1     1     1     1     1     1     1 
 6371  6372  6373  6374  6375  6376  6377  6378  6379  6380  6381  6382  6383 
    2     2     1     1     1     1     3     1     2     1     1     1    14 
 6384  6385  6386  6387  6388  6389  6390  6391  6392  6393  6394  6395  6396 
    1     1     1     4     1     1     1     1     1     1     1     4     1 
 6397  6398  6399  6400  6401  6402  6403  6404  6405  6406  6407  6408  6409 
    2     1     1     1     1     1     1     1     1     1     1     1     1 
 6410  6411  6412  6413  6414  6415  6416  6417  6418  6419  6420  6421  6422 
    1     1     1     1     1     1     1     1     1     1     1     1     1 
 6423  6424  6425  6426  6427  6428  6429  6430  6431  6432  6433  6434  6435 
    1     1     1     1     2     1     3     1     3     1     2     1     1 
 6436  6437  6438  6439  6440  6441  6442  6443  6444  6445  6446  6447  6448 
    1     1     1     1     1     7     1     1     1     1     2     1     1 
 6449  6450  6451  6452  6453  6454  6455  6456  6457  6458  6459  6460  6461 
    1     1     1     1     1     1     1     1     1     1     1     1     1 
 6462  6463  6464  6465  6466  6467  6468  6469  6470  6471  6472  6473  6474 
    1     1     1     3     1     1     4     1     1     1     1     1     1 
 6475  6476  6477  6478  6479  6480  6481  6482  6483  6484  6485  6486  6487 
    1     2     1     1     1     1     1     1     1     1     1     5     3 
 6488  6489  6490  6491  6492  6493  6494  6495  6496  6497  6498  6499  6500 
    1     1     2     1     1     1     1     1     2     2    12     1     1 
 6501  6502  6503  6504  6505  6506  6507  6508  6509  6510  6511  6512  6513 
    1     1     1     1     1     1     1     1     1     1     2     2     1 
 6514  6515  6516  6517  6518  6519  6520  6521  6522  6523  6524  6525  6526 
    1     2     1     1     1     1     1     1     1     1     1     1     1 
 6527  6528  6529  6530  6531  6532  6533  6534  6535  6536  6537  6538  6539 
    1     1     1     1     1     1     1     1     1     1     1     1     1 
 6540  6541  6542  6543  6544  6545  6546  6547  6548  6549  6550  6551  6552 
    1     1     2     2     2     1     1     1     1     1     2    15     1 
 6553  6554  6555  6556  6557  6558  6559  6560  6561  6562  6563  6564  6565 
    1     1     1     1     2     1     2     1     1     1     1     2     8 
 6566  6567  6568  6569  6570  6571  6572  6573  6574  6575  6576  6577  6578 
    1     1     1     2     1     2     1     5     1     1     1     1     1 
 6579  6580  6581  6582  6583  6584  6585  6586  6587  6588  6589  6590  6591 
    1     1     2     1     2     1     1     1     1     1     1     1     7 
 6592  6593  6594  6595  6596  6597  6598  6599  6600  6601  6602  6603  6604 
    1     1     1     1     1     1     1     1     1     2     1     1     1 
 6605  6606  6607  6608  6609  6610  6611  6612  6613  6614  6615  6616  6617 
    1     2     1     1     1     1     1     1    41     1     1     1     1 
 6618  6619  6620  6621  6622  6623  6624  6625  6626  6627  6628  6629  6630 
    1     1     1     1     1     1     1     1     1     1     1     1     1 
 6631  6632  6633  6634  6635  6636  6637  6638  6639  6640  6641  6642  6643 
    2     1     7     1     1     1     1     1     2     2     1     1     1 
 6644  6645  6646  6647  6648  6649  6650  6651  6652  6653  6654  6655  6656 
    1     3     1     1     1     1     2     5     1     1     1    18     1 
 6657  6658  6659  6660  6661  6662  6663  6664  6665  6666  6667  6668  6669 
    1     2     1     1     1     1     1     1     1     2     2     1     1 
 6670  6671  6672  6673  6674  6675  6676  6677  6678  6679  6680  6681  6682 
    1     1     1     1     1     1     1     3     1     1     1     2     1 
 6683  6684  6685  6686  6687  6688  6689  6690  6691  6692  6693  6694  6695 
    2     1     7     4     1     1    41     1     1     1     1     1     1 
 6696  6697  6698  6699  6700  6701  6702  6703  6704  6705  6706  6707  6708 
    1     1     2     1     1     1     7     1     1     1     3     1     1 
 6709  6710  6711  6712  6713  6714  6715  6716  6717  6718  6719  6720  6721 
    1     1     1     2     1     1     1     1     1     1     1     1     1 
 6722  6723  6724  6725  6726  6727  6728  6729  6730  6731  6732  6733  6734 
    8     1     1     1     1     1     1     1    10     1     2     1     1 
 6735  6736  6737  6738  6739  6740  6741  6742  6743  6744  6745  6746  6747 
    2     2     8     1     1     1     1     1     1     1     7     1     1 
 6748  6749  6750  6751  6752  6753  6754  6755  6756  6757  6758  6759  6760 
    1     1     2     1     1     4     1     1     1     1     1     1     1 
 6761  6762  6763  6764  6765  6766  6767  6768  6769  6770  6771  6772  6773 
    1     1     1     1     2     1     1     1     1     1     1    14     1 
 6774  6775  6776  6777  6778  6779  6780  6781  6782  6783  6784  6785  6786 
    2     2     1     1     1     2     4     1     1     1     1     1     1 
 6787  6788  6789  6790  6791  6792  6793  6794  6795  6796  6797  6798  6799 
    1     1     1     1     1     6     1     2     3     5     1     3     1 
 6800  6801  6802  6803  6804  6805  6806  6807  6808  6809  6810  6811  6812 
    1     1     1     1     1     1     1     1     1     1     1     1     1 
 6813  6814  6815  6816  6817  6818  6819  6820  6821  6822  6823  6824  6825 
    2     1     1     1     1     1     1     1     1     1     1     1     1 
 6826  6827  6828  6829  6830  6831  6832  6833  6834  6835  6836  6837  6838 
    1     1     3     1     1     1     1     1     1     1     1     1     1 
 6839  6840  6841  6842  6843  6844  6845  6846  6847  6848  6849  6850  6851 
    1     1     1     8     1     1     2     1     1     1     1     1     1 
 6852  6853  6854  6855  6856  6857  6858  6859  6860  6861  6862  6863  6864 
    2     1     1     1     1     1     1     1     1     1     2     1     1 
 6865  6866  6867  6868  6869  6870  6871  6872  6873  6874  6875  6876  6877 
    1     1     1     1     1     1     1     1     1     1     1     1     1 
 6878  6879  6880  6881  6882  6883  6884  6885  6886  6887  6888  6889  6890 
    2     1     1     6     1     1     1    14     1     1     1     8     1 
 6891  6892  6893  6894  6895  6896  6897  6898  6899  6900  6901  6902  6903 
    1     1     1     1     3     1     1     1     1     1     1     1     2 
 6904  6905  6906  6907  6908  6909  6910  6911  6912  6913  6914  6915  6916 
    1     1     1     1     1     1     3     1     1     1     1     4     1 
 6917  6918  6919  6920  6921  6922  6923  6924  6925  6926  6927  6928  6929 
    1     1     1     2     1     1     1     1     1     1     1     2     1 
 6930  6931  6932  6933  6934  6935  6936  6937  6938  6939  6940  6941  6942 
    1     1     1     1     1     1     4     1     1     1     1     1     1 
 6943  6944  6945  6946  6947  6948  6949  6950  6951  6952  6953  6954  6955 
    1     1     1     1     1     1     1     1     2     1     2     1     1 
 6956  6957  6958  6959  6960  6961  6962  6963  6964  6965  6966  6967  6968 
    2     1     1     1     2     1     2     1     1     1     1     1    41 
 6969  6970  6971  6972  6973  6974  6975  6976  6977  6978  6979  6980  6981 
    1     3     1     1     1     1     1     1     1     1     1     1     1 
 6982  6983  6984  6985  6986  6987  6988  6989  6990  6991  6992  6993  6994 
    2     1     1     1     1     1     1     1     1     1     1     1     1 
 6995  6996  6997  6998  6999  7000  7001  7002  7003  7004  7005  7006  7007 
    1     1     4     1     1     4     1     1     1     1     2     1     1 
 7008  7009  7010  7011  7012  7013  7014  7015  7016  7017  7018  7019  7020 
    1     2     1     5     5    41     1     2     1     1     1     1     1 
 7021  7022  7023  7024  7025  7026  7027  7028  7029  7030  7031  7032  7033 
    1     1     9     1     1     8     1     1     1     1    10     5     1 
 7034  7035  7036  7037  7038  7039  7040  7041  7042  7043  7044  7045  7046 
    1     1     1     4     1     1     2     1     1     1     1     1     1 
 7047  7048  7049  7050  7051  7052  7053  7054  7055  7056  7057  7058  7059 
    1     2     1     1     1     1     1     1     1     1     1     1     1 
 7060  7061  7062  7063  7064  7065  7066  7067  7068  7069  7070  7071  7072 
    1    11     1     1     1     2     1     1     1     1     9     1     1 
 7073  7074  7075  7076  7077  7078  7079  7080  7081  7082  7083  7084  7085 
    1     1     2     1     2     2     1     3     1    14     1     1     1 
 7086  7087  7088  7089  7090  7091  7092  7093  7094  7095  7096  7097  7098 
    1     1     1     1     1     1     2     1     1     9     1     1     1 
 7099  7100  7101  7102  7103  7104  7105  7106  7107  7108  7109  7110  7111 
    1     1     1     2     1     1     1     3     1     1     1     2     1 
 7112  7113  7114  7115  7116  7117  7118  7119  7120  7121  7122  7123  7124 
    2     1     1     1     1     1     1     1     1     1     1     1     1 
 7125  7126  7127  7128  7129  7130  7131  7132  7133  7134  7135  7136  7137 
    1     1     1     1     1     1     1     7     1     1     1     1    10 
 7138  7139  7140  7141  7142  7143  7144  7145  7146  7147  7148  7149  7150 
    1     1     1     1     1     1    12     1     1     1     1     7     1 
 7151  7152  7153  7154  7155  7156  7157  7158  7159  7160  7161  7162  7163 
    1     2     1     1     1     1     1     1     1     1     1     1     1 
 7164  7165  7166  7167  7168  7169  7170  7171  7172  7173  7174  7175  7176 
    1     1     1     1     1     1     1     1     1     1     1     1     1 
 7177  7178  7179  7180  7181  7182  7183  7184  7185  7186  7187  7188  7189 
    1     1     1     2     1     1     1     1     1     1     1     1     1 
 7190  7191  7192  7193  7194  7195  7196  7197  7198  7199  7200  7201  7202 
    1     1     2     1     1     1     1     1     1     1     1     1     1 
 7203  7204  7205  7206  7207  7208  7209  7210  7211  7212  7213  7214  7215 
    1     1     1     1     1     1     1     2     1     3     1     1     1 
 7216  7217  7218  7219  7220  7221  7222  7223  7224  7225  7226  7227  7228 
    1     1     1     1     1     1     1     1     1     1     1     1     1 
 7229  7230  7231  7232  7233  7234  7235  7236  7237  7238  7239  7240  7241 
    1     1     1     1     1     1     1     3     1     1     1     1     1 
 7242  7243  7244  7245  7246  7247  7248  7249  7250  7251  7252  7253  7254 
    1     1     1     1     1     1     1     1     1     1     1     1     1 
 7255  7256  7257  7258  7259  7260  7261  7262  7263  7264  7265  7266  7267 
    1     1     1     2     2     5     1     1     1     1     1     1     2 
 7268  7269  7270  7271  7272  7273  7274  7275  7276  7277  7278  7279  7280 
    1     1     1     1     1     1     1     1     1     1     1     1     1 
 7281  7282  7283  7284  7285  7286  7287  7288  7289  7290  7291  7292  7293 
    1     1     1     1     1     2     1     1     1     1     1     1     1 
 7294  7295  7296  7297  7298  7299  7300  7301  7302  7303  7304  7305  7306 
    1     1     1     1     1     1     1     4     1     1     2     1     3 
 7307  7308  7309  7310  7311  7312  7313  7314  7315  7316  7317  7318  7319 
    1     1     1     1     1     1     1     1     1     1     1     1     1 
 7320  7321  7322  7323  7324  7325  7326  7327  7328  7329  7330  7331  7332 
    1     1     1     2     1     1     1     1     1     1     1     1     1 
 7333  7334  7335  7336  7337  7338  7339  7340  7341  7342  7343  7344  7345 
    1     1     1     1     1     2     1     1     1     1     2     1     1 
 7346  7347  7348  7349  7350  7351  7352  7353  7354  7355  7356  7357  7358 
    1     1     1     1     1     1     1     1     1     6     1     2     1 
 7359  7360  7361  7362  7363  7364  7365  7366  7367  7368  7369  7370  7371 
    2     1     1     2     1     1     1     1     1     1     1     1     1 
 7372  7373  7374  7375  7376  7377  7378  7379  7380  7381  7382  7383  7384 
    1     1     1     1     1     2     1     1     1     3     2     1     1 
 7385  7386  7387  7388  7389  7390  7391  7392  7393  7394  7395  7396  7397 
    1     1     1     1    14     1     2     1     1     1     1     1     1 
 7398  7399  7400  7401  7402  7403  7404  7405  7406  7407  7408  7409  7410 
    1     1     1     1     1     1     1     1     1     1     1     1     1 
 7411  7412  7413  7414  7415  7416  7417  7418  7419  7420  7421  7422  7423 
    1     5     1     1     1     1     1     1     1     1     1     1     1 
 7424  7425  7426  7427  7428  7429  7430  7431  7432  7433  7434  7435  7436 
    1     1     7     1     1     2     4     2     1     2     1     1     1 
 7437  7438  7439  7440  7441  7442  7443  7444  7445  7446  7447  7448  7449 
    2     1     1     1     1     1     1     2     1     1     1     1     1 
 7450  7451  7452  7453  7454  7455  7456  7457  7458  7459  7460  7461  7462 
    1     1     1     1     1     1     1     1     1     1     1     3     1 
 7463  7464  7465  7466  7467  7468  7469  7470  7471  7472  7473  7474  7475 
    2     1     1     1     1     1     1     1     1     4     1     1     1 
 7476  7477  7478  7479  7480  7481  7482  7483  7484  7485  7486  7487  7488 
    1     1     1     1     1     1     1     1     1     1     1     1     1 
 7489  7490  7491  7492  7493  7494  7495  7496  7497  7498  7499  7500  7501 
    1     1     1     1     1     1     1     2     1     3     1     1     1 
 7502  7503  7504  7505  7506  7507  7508  7509  7510  7511  7512  7513  7514 
    1     1     1     1     1     1     1     1     1     1     1     1     1 
 7515  7516  7517  7518  7519  7520  7521  7522  7523  7524  7525  7526  7527 
    1     2     1     1     1     5     1     1     1     1     4     1     1 
 7528  7529  7530  7531  7532  7533  7534  7535  7536  7537  7538  7539  7540 
    1     1     1     2     1     1     1     1     2     1     1     1     1 
 7541  7542  7543  7544  7545  7546  7547  7548  7549  7550  7551  7552  7553 
    5     1     1     1     1     1     1     1     1     4     3     1     1 
 7554  7555  7556  7557  7558  7559  7560  7561  7562  7563  7564  7565  7566 
    1     7     1     1     1     1    10     1     1     1     2     1     1 
 7567  7568  7569  7570  7571  7572  7573  7574  7575  7576  7577  7578  7579 
    1     1     1     2     1     1     1     1     2     1     1     1     1 
 7580  7581  7582  7583  7584  7585  7586  7587  7588  7589  7590  7591  7592 
    1     1     1     1     2     1     1     1     1     1     1     4     1 
 7593  7594  7595  7596  7597  7598  7599  7600  7601  7602  7603  7604  7605 
    1     2     1     1     1     1     1     1     1     1     1     1     1 
 7606  7607  7608  7609  7610  7611  7612  7613  7614  7615  7616  7617  7618 
    3     1     1     1     1     1     1     1     1     1     1     1     1 
 7619  7620  7621  7622  7623  7624  7625  7626  7627  7628  7629  7630  7631 
    1     1     1     2     1     1     1     2     1     1     1     1     1 
 7632  7633  7634  7635  7636  7637  7638  7639  7640  7641  7642  7643  7644 
    1     1     1     3    10     1     1     1     3     1     1     1     1 
 7645  7646  7647  7648  7649  7650  7651  7652  7653  7654  7655  7656  7657 
    1     1     1     3     1     1     1     8     2     1     1     1     1 
 7658  7659  7660  7661  7662  7663  7664  7665  7666  7667  7668  7669  7670 
    1     2     1     1     1     1     1     1     1     1     1     1     1 
 7671  7672  7673  7674  7675  7676  7677  7678  7679  7680  7681  7682  7683 
    1     1    41     9     1     8     1     1     1     1     1     1     1 
 7684  7685  7686  7687  7688  7689  7690  7691  7692  7693  7694  7695  7696 
    2     1     1     1     1     1     1     1     1     1     1     1     1 
 7697  7698  7699  7700  7701  7702  7703  7704  7705  7706  7707  7708  7709 
    1     1     1     3     1     1     1     1     1     1     2     1     1 
 7710  7711  7712  7713  7714  7715  7716  7717  7718  7719  7720  7721  7722 
    1     1     1     2     1     2     1     1     1     3     1     1     4 
 7723  7724  7725  7726  7727  7728  7729  7730  7731  7732  7733  7734  7735 
    2     1     1     1     1     1     1     1     1     1     2     1     1 
 7736  7737  7738  7739  7740  7741  7742  7743  7744  7745  7746  7747  7748 
    1     1     1     1     1     1     1     2     1     1     1     7     1 
 7749  7750  7751  7752  7753  7754  7755  7756  7757  7758  7759  7760  7761 
    1     1     1     1     1     1     1     1     3     1     1     1     1 
 7762  7763  7764  7765  7766  7767  7768  7769  7770  7771  7772  7773  7774 
    1     1     1     1     1     1     1     1     1     1     1     1     1 
 7775  7776  7777  7778  7779  7780  7781  7782  7783  7784  7785  7786  7787 
    4     2     1     1     3     1     1     1     1     1     1     1     1 
 7788  7789  7790  7791  7792  7793  7794  7795  7796  7797  7798  7799  7800 
    1     1    18     1     1     1     1     2     1     2     1     1     1 
 7801  7802  7803  7804  7805  7806  7807  7808  7809  7810  7811  7812  7813 
    1     1     1     1     1     1     4     1     1     1     2     1     1 
 7814  7815  7816  7817  7818  7819  7820  7821  7822  7823  7824  7825  7826 
    1     1     9     1     1     1     3     1     1     1     1     1     1 
 7827  7828  7829  7830  7831  7832  7833  7834  7835  7836  7837  7838  7839 
    1     2     1     1     1     2     1     1     1     1     1     2     1 
 7840  7841  7842  7843  7844  7845  7846  7847  7848  7849  7850  7851  7852 
    4     1     1     1     1     1     1     1     3     1     1     1     1 
 7853  7854  7855  7856  7857  7858  7859  7860  7861  7862  7863  7864  7865 
    1     1     1     1     1     1     1     1     1     3     1     1     1 
 7866  7867  7868  7869  7870  7871  7872  7873  7874  7875  7876  7877  7878 
    1     1     2     1     1     5     1     1     1     1     1     1     1 
 7879  7880  7881  7882  7883  7884  7885  7886  7887  7888  7889  7890  7891 
    1     2     2     1     1     1     1     1     1     1     5     1     1 
 7892  7893  7894  7895  7896  7897  7898  7899  7900  7901  7902  7903  7904 
    4     1    14     1     1     2     1     1     2     1     1     1     1 
 7905  7906  7907  7908  7909  7910  7911  7912  7913  7914  7915  7916  7917 
    1     1     1     1     1     2     5     1     1     1     1     1     1 
 7918  7919  7920  7921  7922  7923  7924  7925  7926  7927  7928  7929  7930 
    4     1     2     1     1     1     1     1     1     1     1     2     1 
 7931  7932  7933  7934  7935  7936  7937  7938  7939  7940  7941  7942  7943 
    1     1     2     1     1     1     1     2     4     1     4     1     1 
 7944  7945  7946  7947  7948  7949  7950  7951  7952  7953  7954  7955  7956 
    1     1     1     1     1     1     1     1     1     1     1     1     1 
 7957  7958  7959  7960  7961  7962  7963  7964  7965  7966  7967  7968  7969 
    1     1     1     2     1     1     1     1     1     1     1     1     1 
 7970  7971  7972  7973  7974  7975  7976  7977  7978  7979  7980  7981  7982 
    1     1     1     2     1     1     1     1     1     1     1     1     1 
 7983  7984  7985  7986  7987  7988  7989  7990  7991  7992  7993  7994  7995 
   10     1     1     2     5     1     1     1     1     1     1     1     1 
 7996  7997  7998  7999  8000  8001  8002  8003  8004  8005  8006  8007  8008 
    1     1     1     1     1     2     1     1     1     1     1     1     1 
 8009  8010  8011  8012  8013  8014  8015  8016  8017  8018  8019  8020  8021 
    1     1     1     3     1     1     1     3     1     1     1     1     1 
 8022  8023  8024  8025  8026  8027  8028  8029  8030  8031  8032  8033  8034 
    1     1     1     1     2     3     1     1     1     1     1     1     1 
 8035  8036  8037  8038  8039  8040  8041  8042  8043  8044  8045  8046  8047 
    1     2     1     1     6     1     1     1     1     1     1     1     1 
 8048  8049  8050  8051  8052  8053  8054  8055  8056  8057  8058  8059  8060 
    1     1     1     1     1     1     1     1     1     1     1     1     1 
 8061  8062  8063  8064  8065  8066  8067  8068  8069  8070  8071  8072  8073 
    2     1     1     1     1     2     1     1     1     1     1     1     1 
 8074  8075  8076  8077  8078  8079  8080  8081  8082  8083  8084  8085  8086 
    1     1     1     1     1     1     1     2     1     1     1     1     1 
 8087  8088  8089  8090  8091  8092  8093  8094  8095  8096  8097  8098  8099 
    1     4     1     4     1     1     5     1     1     1     1     1     1 
 8100  8101  8102  8103  8104  8105  8106  8107  8108  8109  8110  8111  8112 
    1     1     5     1     5     1     1     4     1     1     1     1     1 
 8113  8114  8115  8116  8117  8118  8119  8120  8121  8122  8123  8124  8125 
    1     1     5     1     1     1     1     1     1     2     1     3     1 
 8126  8127  8128  8129  8130  8131  8132  8133  8134  8135  8136  8137  8138 
    1     1     1     1     1     1     1     1     2     1     1     1     1 
 8139  8140  8141  8142  8143  8144  8145  8146  8147  8148  8149  8150  8151 
    1     1     1     3     1     1     1     1     1     1     1     1     1 
 8152  8153  8154  8155  8156  8157  8158  8159  8160  8161  8162  8163  8164 
    1     1     1     1     1     1     1     1     1     1     3     1     1 
 8165  8166  8167  8168  8169  8170  8171  8172  8173  8174  8175  8176  8177 
    1     5     3     1     1     1    14     1     2     1     3     1     1 
 8178  8179  8180  8181  8182  8183  8184  8185  8186  8187  8188  8189  8190 
    1     1     1     1     1     1     1    41     1     1     1    15     3 
 8191  8192  8193  8194  8195  8196  8197  8198  8199  8200  8201  8202  8203 
    3     1     1     1     1     1    13     3    13     1     2     1     1 
 8204  8205  8206  8207  8208  8209  8210  8211  8212  8213  8214  8215  8216 
    1     1     1     1     1     1     1     1     1     1     5     1     1 
 8217  8218  8219  8220  8221  8222  8223  8224  8225  8226  8227  8228  8229 
    1     1     1     1     1     1     1     1     2     4     1     1     1 
 8230  8231  8232  8233  8234  8235  8236  8237  8238  8239  8240  8241  8242 
    1     1     1     1     1     1     1     2     1     1     1     1     1 
 8243  8244  8245  8246  8247  8248  8249  8250  8251  8252  8253  8254  8255 
    1     1     2     1     1     1     1     1     1     1     1     3     3 
 8256  8257  8258  8259  8260  8261  8262  8263  8264  8265  8266  8267  8268 
    1     1     1     1     1     1     2     1     3     1     2     1     1 
 8269  8270  8271  8272  8273  8274  8275  8276  8277  8278  8279  8280  8281 
    1     1     3     2     1     5     1     1     1     1     1     1     1 
 8282  8283  8284  8285  8286  8287  8288  8289  8290  8291  8292  8293  8294 
    1     1     1     1     1     1     1     1     1     1     1     2     1 
 8295  8296  8297  8298  8299  8300  8301  8302  8303  8304  8305  8306  8307 
    2     2     1     1     1     1     1     1     1     4     1    10    13 
 8308  8309  8310  8311  8312  8313  8314  8315  8316  8317  8318  8319  8320 
    1     1     1     1     1     1     1     1     1     1     1     1     5 
 8321  8322  8323  8324  8325  8326  8327  8328  8329  8330  8331  8332  8333 
    1     1     1    41     1     1     1     1     1     2     1     1     1 
 8334  8335  8336  8337  8338  8339  8340  8341  8342  8343  8344  8345  8346 
    1     1     1     1     1     1     9     1     1     1     1     1     1 
 8347  8348  8349  8350  8351  8352  8353  8354  8355  8356  8357  8358  8359 
    1     3     1     1    13     1     1     1     1     1     1     3     1 
 8360  8361  8362  8363  8364  8365  8366  8367  8368  8369  8370  8371  8372 
    1     2     1     1     1     1     1     1     1     1     1     1     1 
 8373  8374  8375  8376  8377  8378  8379  8380  8381  8382  8383  8384  8385 
    1     1     1     1     1     1     3     1     1     1     1     1     1 
 8386  8387  8388  8389  8390  8391  8392  8393  8394  8395  8396  8397  8398 
    1     2     1     1     1     1     1     1     1     1     1     2     1 
 8399  8400  8401  8402  8403  8404  8405  8406  8407  8408  8409  8410  8411 
    4     1     1     1     3     1     1     1     1     1     1     1     1 
 8412  8413  8414  8415  8416  8417  8418  8419  8420  8421  8422  8423  8424 
    1     1     3     1     1     1     2     1     1     1     3     2     1 
 8425  8426  8427  8428  8429  8430  8431  8432  8433  8434  8435  8436  8437 
   11     1     1     1     1     1     1     3     1     1     3     1     1 
 8438  8439  8440  8441  8442  8443  8444  8445  8446  8447  8448  8449  8450 
    1     1     1     1     1    13     1     4     1     1     2     1     1 
 8451  8452  8453  8454  8455  8456  8457  8458  8459  8460  8461  8462  8463 
    5     1     1     1     1     1     1     3     1     2     3     2     1 
 8464  8465  8466  8467  8468  8469  8470  8471  8472  8473  8474  8475  8476 
    2     3     1     1     2     1     1     2     1     1     3    14     1 
 8477  8478  8479  8480  8481  8482  8483  8484  8485  8486  8487  8488  8489 
    1     1     1     3     1     1     1     1     1     1    10     2     1 
 8490  8491  8492  8493  8494  8495  8496  8497  8498  8499  8500  8501  8502 
    1     1     1     1     1     1     5     6     1     1     1     1     1 
 8503  8504  8505  8506  8507  8508  8509  8510  8511  8512  8513  8514  8515 
    1     1     1     1     1     1     1     4     1     1     1     1     1 
 8516  8517  8518  8519  8520  8521  8522  8523  8524  8525  8526  8527  8528 
    1     1     1     1     1     1     1     1     1     1     1     1     1 
 8529  8530  8531  8532  8533  8534  8535  8536  8537  8538  8539  8540  8541 
    1     2     1     1     1     1     1     3     1     2     2     1    41 
 8542  8543  8544  8545  8546  8547  8548  8549  8550  8551  8552  8553  8554 
    3     3     1     1     1     2     1    41     1     2     7     1     1 
 8555  8556  8557  8558  8559  8560  8561  8562  8563  8564  8565  8566  8567 
    2     1     1     1     5     3     2     1     3     1    10     1     3 
 8568  8569  8570  8571  8572  8573  8574  8575  8576  8577  8578  8579  8580 
    1     1     1     1     1     1    14     2     1     1     1     1     1 
 8581  8582  8583  8584  8585  8586  8587  8588  8589  8590  8591  8592  8593 
    1     2     1     1     1     2     1     1     5     1     1     2     1 
 8594  8595  8596  8597  8598  8599  8600  8601  8602  8603  8604  8605  8606 
    1     1     1     1     1     2     1     1     1     3     1     1     1 
 8607  8608  8609  8610  8611  8612  8613  8614  8615  8616  8617  8618  8619 
    1     1     1     1     1     4     1     1     1     1     1    41     1 
 8620  8621  8622  8623  8624  8625  8626  8627  8628  8629  8630  8631  8632 
    1     1     1     4     1     1     1     1     1     1     1     1     3 
 8633  8634  8635  8636  8637  8638  8639  8640  8641  8642  8643  8644  8645 
    4     1     1     1     5     1     1     1     1     1     1     1     1 
 8646  8647  8648  8649  8650  8651  8652  8653  8654  8655  8656  8657  8658 
    1     1     1     1     1     3     1     1     1     1     1     1     1 
 8659  8660  8661  8662  8663  8664  8665  8666  8667  8668  8669  8670  8671 
    1     1     1     1     1     1     1     1     1     1     1     1     1 
 8672  8673  8674  8675  8676  8677  8678  8679  8680  8681  8682  8683  8684 
    1     4     1     1     1     1     3     1     1     1     1    13     1 
 8685  8686  8687  8688  8689  8690  8691  8692  8693  8694  8695  8696  8697 
    1     1     1     1     1     1     1     1     1     1     1     5    13 
 8698  8699  8700  8701  8702  8703  8704  8705  8706  8707  8708  8709  8710 
    2     1     9     2     1     3     1     1     1     1     1     2     1 
 8711  8712  8713  8714  8715  8716  8717  8718  8719  8720  8721  8722  8723 
    1     1     1     1    12     1     1     1     1     1     3     1     3 
 8724  8725  8726  8727  8728  8729  8730  8731  8732  8733  8734  8735  8736 
    1     1     1     1     4     1     1     1     1     1     1     4     1 
 8737  8738  8739  8740  8741  8742  8743  8744  8745  8746  8747  8748  8749 
    1     1     1     1     1     1     1     1     4     3     1     1     3 
 8750  8751  8752  8753  8754  8755  8756  8757  8758  8759  8760  8761  8762 
    2     1     1     2     1     1     1     1     5     1     1     1     1 
 8763  8764  8765  8766  8767  8768  8769  8770  8771  8772  8773  8774  8775 
    1     1     1     1     1     1     1     1     1    18     1     1     1 
 8776  8777  8778  8779  8780  8781  8782  8783  8784  8785  8786  8787  8788 
    1     1     3     3     1     1     1     1     1     7     1     1     1 
 8789  8790  8791  8792  8793  8794  8795  8796  8797  8798  8799  8800  8801 
    1     1     1     1     1     1     2     1     2     1     1     1     1 
 8802  8803  8804  8805  8806  8807  8808  8809  8810  8811  8812  8813  8814 
    1     3    11     1     1     1     2     1     2     1     1     1     1 
 8815  8816  8817  8818  8819  8820  8821  8822  8823  8824  8825  8826  8827 
    1     1     1     1     1     2     1     1     1     1     1     1     1 
 8828  8829  8830  8831  8832  8833  8834  8835  8836  8837  8838  8839  8840 
    1     2     1     1     4     1     1     1     1     1     1     1     1 
 8841  8842  8843  8844  8845  8846  8847  8848  8849  8850  8851  8852  8853 
    1     3     1     1     3     1     1     3     9     1     1     1     1 
 8854  8855  8856  8857  8858  8859  8860  8861  8862  8863  8864  8865  8866 
    1     1     3     2     1     1     1     1     1     3     1     1     1 
 8867  8868  8869  8870  8871  8872  8873  8874  8875  8876  8877  8878  8879 
    2     1     1     1     1     1     1     1     3     1     1     1     1 
 8880  8881  8882  8883  8884  8885  8886  8887  8888  8889  8890  8891  8892 
    5     2     1     1     1     1     1     1     1     1     1     1     1 
 8893  8894  8895  8896  8897  8898  8899  8900  8901  8902  8903  8904  8905 
   18     2     1     1     1     1     2     3     1     1     1     2     1 
 8906  8907  8908  8909  8910  8911  8912  8913  8914  8915  8916  8917  8918 
    1     1     1     1     1     1     1     1     1     1     1     1     1 
 8919  8920  8921  8922  8923  8924  8925  8926  8927  8928  8929  8930  8931 
    1     2     1     2     1     1     7     1     1     1     1     1     1 
 8932  8933  8934  8935  8936  8937  8938  8939  8940  8941  8942  8943  8944 
    1     1     1     1     1     1     1     1     3     1     2     1     1 
 8945  8946  8947  8948  8949  8950  8951  8952  8953  8954  8955  8956  8957 
    1     3    18     8     2     1     1     3     1     1     1     1     4 
 8958  8959  8960  8961  8962  8963  8964  8965  8966  8967  8968  8969  8970 
    1     1     1     1     1     1     1     1     1     3     1     1     1 
 8971  8972  8973  8974  8975  8976  8977  8978  8979  8980  8981  8982  8983 
    1     1     1     1     1     1     1     1     1     1     1     1     1 
 8984  8985  8986  8987  8988  8989  8990  8991  8992  8993  8994  8995  8996 
    1     1     2     2     1     2     5     1     1     1     3     1     1 
 8997  8998  8999  9000  9001  9002  9003  9004  9005  9006  9007  9008  9009 
    1     1     1     1     1     2    13     3     1     3     1     1     1 
 9010  9011  9012  9013  9014  9015  9016  9017  9018  9019  9020  9021  9022 
    1     1     1     1    41     8     1    10     1     1     1     1     5 
 9023  9024  9025  9026  9027  9028  9029  9030  9031  9032  9033  9034  9035 
    1     1     1     1     1     1     1     1     1     1     1     2     1 
 9036  9037  9038  9039  9040  9041  9042  9043  9044  9045  9046  9047  9048 
    1     1     1     1     1     1     1     1     1     1     1     1     1 
 9049  9050  9051  9052  9053  9054  9055  9056  9057  9058  9059  9060  9061 
    1     2     2     1     1     1     1     1     1     1     1     2     1 
 9062  9063  9064  9065  9066  9067  9068  9069  9070  9071  9072  9073  9074 
    1    18     2     1     1     1     1     1     1    11     1     1     2 
 9075  9076  9077  9078  9079  9080  9081  9082  9083  9084  9085  9086  9087 
    1     1     1     1     3     1     3     1     1     1     3     1     1 
 9088  9089  9090  9091  9092  9093  9094  9095  9096  9097  9098  9099  9100 
    1     1     1     1     1     1     1     1    41     8     1     1     1 
 9101  9102  9103  9104  9105  9106  9107  9108  9109  9110  9111  9112  9113 
    1     1     3     2     1     1     1     2     2     1     1     6     1 
 9114  9115  9116  9117  9118  9119  9120  9121  9122  9123  9124  9125  9126 
    1     1     1     1     1     1     1     1     1     1     1     1     1 
 9127  9128  9129  9130  9131  9132  9133  9134  9135  9136  9137  9138  9139 
    1     1     1     1     1     1     1     1     1     3     1     1     1 
 9140  9141  9142  9143  9144  9145  9146  9147  9148  9149  9150  9151  9152 
    1     1     1     1     1     1     3     1     1     1     1     4     2 
 9153  9154  9155  9156  9157  9158  9159  9160  9161  9162  9163  9164  9165 
    1     3     1     1     1     1     1     1     1     1     5     1     1 
 9166  9167  9168  9169  9170  9171  9172  9173  9174  9175  9176  9177  9178 
    1     1     2     1     2     1     1     1     1     1     2     1     1 
 9179  9180  9181  9182  9183  9184  9185  9186  9187  9188  9189  9190  9191 
    1     1     1     1     1     1     1     1     1     1     1     1     1 
 9192  9193  9194  9195  9196  9197  9198  9199  9200  9201  9202  9203  9204 
    1     1     1     1     1     2    41     1     1     1     1     2     1 
 9205  9206  9207  9208  9209  9210  9211  9212  9213  9214  9215  9216  9217 
    3     1     3     1     2     1     1     1     1     3     1     1     1 
 9218  9219  9220  9221  9222  9223  9224  9225  9226  9227  9228  9229  9230 
    2     2     3     1     1     1     1     1     2     1     1     1     1 
 9231  9232  9233  9234  9235  9236  9237  9238  9239  9240  9241  9242  9243 
    1     1     1     1     1     1     1     1     1     7     1     1     1 
 9244  9245  9246  9247  9248  9249  9250  9251  9252  9253  9254  9255  9256 
    1     1     1     1     1     1     1     1     2     1     1     5     1 
 9257  9258  9259  9260  9261  9262  9263  9264  9265  9266  9267  9268  9269 
    1     1     1     1     1     1     1     1     2     2     1    14     1 
 9270  9271  9272  9273  9274  9275  9276  9277  9278  9279  9280  9281  9282 
    4     7     7     1     1    18     2     1     1     2     1     1     1 
 9283  9284  9285  9286  9287  9288  9289  9290  9291  9292  9293  9294  9295 
    1     1     1     1     1     1     8     1     1     1     1     1     1 
 9296  9297  9298  9299  9300  9301  9302  9303  9304  9305  9306  9307  9308 
    4     2     1     1     1     1     1     1     1     1     1     1     6 
 9309  9310  9311  9312  9313  9314  9315  9316  9317  9318  9319  9320  9321 
    1     1     1     1     2     1     1     1     1     1     1     1     1 
 9322  9323  9324  9325  9326  9327  9328  9329  9330  9331  9332  9333  9334 
    1     1     1     1     1     1     1     1     1     1     1     1     1 
 9335  9336  9337  9338  9339  9340  9341  9342  9343  9344  9345  9346  9347 
    2     1     1     1     1     1     1     2     1     1     1     1     1 
 9348  9349  9350  9351  9352  9353  9354  9355  9356  9357  9358  9359  9360 
    1     1     1     1     1     1     1     1     1     1     1     1     1 
 9361  9362  9363  9364  9365  9366  9367  9368  9369  9370  9371  9372  9373 
    1     1     1     1     1     1     1     1     1     1     1     1     1 
 9374  9375  9376  9377  9378  9379  9380  9381  9382  9383  9384  9385  9386 
    1     1     1     1     1     2     1     1     2     1     1     1     1 
 9387  9388  9389  9390  9391  9392  9393  9394  9395  9396  9397  9398  9399 
    6     1     1     1     1     1     1     1     1     1     4     1     1 
 9400  9401  9402  9403  9404  9405  9406  9407  9408  9409  9410  9411  9412 
    2     1     1     1     1     1     1     1     1     1     1     1     1 
 9413  9414  9415  9416  9417  9418  9419  9420  9421  9422  9423  9424  9425 
    1     1     1     1     1     1     1     1     1     1     1     1     1 
 9426  9427  9428  9429  9430  9431  9432  9433  9434  9435  9436  9437  9438 
    1     1     1     1     1     1     1     1     1     1     1     1     1 
 9439  9440  9441  9442  9443  9444  9445  9446  9447  9448  9449  9450  9451 
    1     1     1     1     1     7     1     1     1     1     1     1     1 
 9452  9453  9454  9455  9456  9457  9458  9459  9460  9461  9462  9463  9464 
    1     1     2     1     1     3     1     1     1     1     1     1     1 
 9465  9466  9467  9468  9469  9470  9471  9472  9473  9474  9475  9476  9477 
    1     1     1     1     1     1     1     1     1     1     1     2     1 
 9478  9479  9480  9481  9482  9483  9484  9485  9486  9487  9488  9489  9490 
    1     1     7     1     1     1     4     7     1     1     1     2     6 
 9491  9492  9493  9494  9495  9496  9497  9498  9499  9500  9501  9502  9503 
    1     1     2     1     1     1     4     1     2     1     1     1     1 
 9504  9505  9506  9507  9508  9509  9510  9511  9512  9513  9514  9515  9516 
    2     1     1     1     1     9     1     1     1     3     1     1     1 
 9517  9518  9519  9520  9521  9522  9523  9524  9525  9526  9527  9528  9529 
    1     1     1     1     1     1     1     1     1     1     2     1     1 
 9530  9531  9532  9533  9534  9535  9536  9537  9538  9539  9540  9541  9542 
    1     1     2     1     6     1     1     1     1     1     1     1     1 
 9543  9544  9545  9546  9547  9548  9549  9550  9551  9552  9553  9554  9555 
    1     2     1     1     1     1     1     1     1     1     2     1     1 
 9556  9557  9558  9559  9560  9561  9562  9563  9564  9565  9566  9567  9568 
    1     1     4     3     4     1     1     1     1     1     1     1     3 
 9569  9570  9571  9572  9573  9574  9575  9576  9577  9578  9579  9580  9581 
    1     1     1     1     1     1     2     1     1     1     1     1     1 
 9582  9583  9584  9585  9586  9587  9588  9589  9590  9591  9592  9593  9594 
    1     1     6     2     3     3     1     1     1     1     2     1     1 
 9595  9596  9597  9598  9599  9600  9601  9602  9603  9604  9605  9606  9607 
    1     1     7     1     2     1     7     1     1     1     1     1     1 
 9608  9609  9610  9611  9612  9613  9614  9615  9616  9617  9618  9619  9620 
    1     1     1     2     1     1     1     1     1     1     1     2     1 
 9621  9622  9623  9624  9625  9626  9627  9628  9629  9630  9631  9632  9633 
    1     2     1     1     4     1     1     1     1     2     1     1     1 
 9634  9635  9636  9637  9638  9639  9640  9641  9642  9643  9644  9645  9646 
    2     1     1     1     1     1     1     1     1     1     1     3     6 
 9647  9648  9649  9650  9651  9652  9653  9654  9655  9656  9657  9658  9659 
    1     1     1     2     1     1     1     1     1    14    10     1     3 
 9660  9661  9662  9663  9664  9665  9666  9667  9668  9669  9670  9671  9672 
    2     1     6     1     1     1     1     1     1     1     1     4     5 
 9673  9674  9675  9676  9677  9678  9679  9680  9681  9682  9683  9684  9685 
    2     1     1     1     1     1     1     2     1     1     1     1     1 
 9686  9687  9688  9689  9690  9691  9692  9693  9694  9695  9696  9697  9698 
    1     1     1     1     1     1     1     1     1     1     1     1     1 
 9699  9700  9701  9702  9703  9704  9705  9706  9707  9708  9709  9710  9711 
    1     1     1     6     1     1     1     1     1     1     1     2     1 
 9712  9713  9714  9715  9716  9717  9718  9719  9720  9721  9722  9723  9724 
    1     1     1     2     1     1     1     2     1     1     4     1     7 
 9725  9726  9727  9728  9729  9730  9731  9732  9733  9734  9735  9736  9737 
    1     4     5     1     1     1     1     1     1     2     1     1     1 
 9738  9739  9740  9741  9742  9743  9744  9745  9746  9747  9748  9749  9750 
    1     1     1     1     1     7     1     2     1     2     2     1     1 
 9751  9752  9753  9754  9755  9756  9757  9758  9759  9760  9761  9762  9763 
    1     1     1     1     1     1     1     1     1     1     2     1     1 
 9764  9765  9766  9767  9768  9769  9770  9771  9772  9773  9774  9775  9776 
    1     7     1     1     1     1     4     1     1     1     1     7     3 
 9777  9778  9779  9780  9781  9782  9783  9784  9785  9786  9787  9788  9789 
    1     1     1     1     2     1     3     1     1     1     1     3     2 
 9790  9791  9792  9793  9794  9795  9796  9797  9798  9799  9800  9801  9802 
    7     1     1     5     1     1     1     1     3     1     1     2     1 
 9803  9804  9805  9806  9807  9808  9809  9810  9811  9812  9813  9814  9815 
    1     1     1     1     1     1     1     1     2     1     1     1     1 
 9816  9817  9818  9819  9820  9821  9822  9823  9824  9825  9826  9827  9828 
    1     1     1     1     1     1     1     2     1     1     1     1     1 
 9829  9830  9831  9832  9833  9834  9835  9836  9837  9838  9839  9840  9841 
    1     1     1     1     6     1     1     1     1     1     3     1     2 
 9842  9843  9844  9845  9846  9847  9848  9849  9850  9851  9852  9853  9854 
    1     1     1     5     1     4     1     1     1     1     3     1     1 
 9855  9856  9857  9858  9859  9860  9861  9862  9863  9864  9865  9866  9867 
    4     3     1     1     1     1     1    10     1     1     2     1     1 
 9868  9869  9870  9871  9872  9873  9874  9875  9876  9877  9878  9879  9880 
    1     1     1     1     1     1     1     1     5     1     1     4     1 
 9881  9882  9883  9884  9885  9886  9887  9888  9889  9890  9891  9892  9893 
    1     1     1     1     1    14     2     3     2     1     1     1     2 
 9894  9895  9896  9897  9898  9899  9900  9901  9902  9903  9904  9905  9906 
    3     1     6     2     1     2     1     1     1     1     3     1     1 
 9907  9908  9909  9910  9911  9912  9913  9914  9915  9916  9917  9918  9919 
    1     1     2     6     1     1     1     1     1     3     1     1     1 
 9920  9921  9922  9923  9924  9925  9926  9927  9928  9929  9930  9931  9932 
    1     1     1    14     1     1     1     1     5     1     1     2     4 
 9933  9934  9935  9936  9937  9938  9939  9940  9941  9942  9943  9944  9945 
    1     1     1     1     1     1     1     1     1     1     1     1     1 
 9946  9947  9948  9949  9950  9951  9952  9953  9954  9955  9956  9957  9958 
    1     1     1     2     1     1     1     1     1     1     1     1     1 
 9959  9960  9961  9962  9963  9964  9965  9966  9967  9968  9969  9970  9971 
    1     1     1     1     1     1     1     1     1     1     2     1     1 
 9972  9973  9974  9975  9976  9977  9978  9979  9980  9981  9982  9983  9984 
   15     1    11     2     1     1     8     2     1     1     1     4     1 
 9985  9986  9987  9988  9989  9990  9991  9992  9993  9994  9995  9996  9997 
    1     1     1     1     2     2     1     1     1     1     1    11     1 
 9998  9999 10000 10001 10002 10003 10004 10005 10006 10007 10008 10009 10010 
    1     1     5     1     2     1     1     1     1    12     2     1     4 
10011 10012 10013 10014 10015 10016 10017 10018 10019 10020 10021 10022 10023 
    1     1     1     1     4     1     1     1     4     1     1     1     1 
10024 10025 10026 10027 10028 10029 10030 10031 10032 10033 10034 10035 10036 
    1     1     1     1     1     1     3     2     1     1     1     1     7 
10037 10038 10039 10040 10041 10042 10043 10044 10045 10046 10047 10048 10049 
    1     5     1     2     1     1     8     1     1     1     1     1     1 
10050 10051 10052 10053 10054 10055 10056 10057 10058 10059 10060 10061 10062 
    1     1     1     1     1     6     1     1     1     1     1     1     1 
10063 10064 10065 10066 10067 10068 10069 10070 10071 10072 10073 10074 10075 
    1     1     1     1     1     1     1     1     1     1     8     1     2 
10076 10077 10078 10079 10080 10081 10082 10083 10084 10085 10086 10087 10088 
    1     1     3    14     1     1     1     2     2     3     2     1    12 
10089 10090 10091 10092 10093 10094 10095 10096 10097 10098 10099 10100 10101 
    1     1     1     1     1     1     1    11     1     1     2     1     1 
10102 10103 10104 10105 10106 10107 10108 10109 10110 10111 10112 10113 10114 
    1     1     2     1     1     1     1     1     7     1     1     6     1 
10115 10116 10117 10118 10119 10120 10121 10122 10123 10124 10125 10126 10127 
    1     1     1     1     1     1     1     1     1     1     1     1     4 
10128 10129 10130 10131 10132 10133 10134 10135 10136 10137 10138 10139 10140 
    1     1     2     1     1     1     1     1     1     1     1     8     1 
10141 10142 10143 10144 10145 10146 10147 10148 10149 10150 10151 10152 10153 
    1     1     1     1     1     2     1     1     1     1    14     1     9 
10154 10155 10156 10157 10158 10159 10160 10161 10162 10163 10164 10165 10166 
    1     3     2     1     1     3     1     1     1     1     1     1     1 
10167 10168 10169 10170 10171 10172 10173 10174 10175 10176 10177 10178 10179 
    1     2     1     2     1     1     1     1     1     2     1     1     2 
10180 10181 10182 10183 10184 10185 10186 10187 10188 10189 10190 10191 10192 
    2     1     1     1     1     1     4     3     1     1     1     1     1 
10193 10194 10195 10196 10197 10198 10199 10200 10201 10202 10203 10204 10205 
    1     1    14     1     1    41     2     1     1     1     1     1     1 
10206 10207 10208 10209 10210 10211 10212 10213 10214 10215 10216 10217 10218 
    1     1     1     1     1     1     4     1     1     1     1     1     1 
10219 10220 10221 10222 10223 10224 10225 10226 10227 10228 10229 10230 10231 
    1     1     1     1     1     1     1     1     1     1     1     1     2 
10232 10233 10234 10235 10236 10237 10238 10239 10240 10241 10242 10243 10244 
    1     1     1     1     1     1     1     1     1     1     1     1     1 
10245 10246 10247 10248 10249 10250 10251 10252 10253 10254 10255 10256 10257 
    5     1     1     1     1     1     2     1     1     4     1     1     2 
10258 10259 10260 10261 10262 10263 10264 10265 10266 10267 10268 10269 10270 
    1     2     1     1     1     1     1     3     1     1     1     1     1 
10271 10272 10273 10274 10275 10276 10277 10278 10279 10280 10281 10282 10283 
    1     1     2     1     1     1     2     1     1     1     1     1     1 
10284 10285 10286 10287 10288 10289 10290 10291 10292 10293 10294 10295 10296 
    1     1     1     1     1     1     1     1     1     1     1     2     1 
10297 10298 10299 10300 10301 10302 10303 10304 10305 10306 10307 10308 10309 
    1     2     1     1     1     2     7     1     1     1     1     1     1 
10310 10311 10312 10313 10314 10315 10316 10317 10318 10319 10320 10321 10322 
    1     1     1     1     1     1     1     1     1     1     3     1     1 
10323 10324 10325 10326 10327 10328 10329 10330 10331 10332 10333 10334 10335 
    1     1     1     1     1     1     1     1     1     1     1     1     1 
10336 10337 10338 10339 10340 10341 10342 10343 10344 10345 10346 10347 10348 
    1     2     1     1     1     1     1     1     1     1     2     1     1 
10349 10350 10351 10352 10353 10354 10355 10356 10357 10358 10359 10360 10361 
    1     1     2     1     1     1     2     3     1     1     1     1     1 
10362 10363 10364 10365 10366 10367 10368 10369 10370 10371 10372 10373 10374 
    1     1     1     1     1     6     1     1     1     1     1     1     1 
10375 10376 10377 10378 10379 10380 10381 10382 10383 10384 10385 10386 10387 
    1     1     1     1     2     1     4     1     1     1     4     1     1 
10388 10389 10390 10391 10392 10393 10394 10395 10396 10397 10398 10399 10400 
    1     1     1     1     1     1     1     1     1     1     1     1     1 
10401 10402 10403 10404 10405 10406 10407 10408 10409 10410 10411 10412 10413 
    1     1     1     1     1     6     1     2     1     1     2     1     4 
10414 10415 10416 10417 10418 10419 10420 10421 10422 10423 10424 10425 10426 
    1     1     1     1     1    12     1     1     1     1     1     2    41 
10427 10428 10429 10430 10431 10432 10433 10434 10435 10436 10437 10438 10439 
    1     1     1     2     2     1     2     1     1     1     1     1     1 
10440 10441 10442 10443 10444 10445 10446 10447 10448 10449 10450 10451 10452 
    1     1     1     1     1     1     1     1     1     1     1     1     1 
10453 10454 10455 10456 10457 10458 10459 10460 10461 10462 10463 10464 10465 
    1     1     1     2     1     1     1     1     1     1     1     1    18 
10466 10467 10468 10469 10470 10471 10472 10473 10474 10475 10476 10477 10478 
    1     1     1     1     5     2     1     1     1     1     1     1     1 
10479 10480 10481 10482 10483 10484 10485 10486 10487 10488 10489 10490 10491 
    2     2     1     2     1     1     1     4     1     2     1     1     1 
10492 10493 10494 10495 10496 10497 10498 10499 10500 10501 10502 10503 10504 
    5     1     5     1     1     4     2     1    12     2     1     1     1 
10505 10506 10507 10508 10509 10510 10511 10512 10513 10514 10515 10516 10517 
    1     1     1     1     1     1     1     1     1     1     1     1     1 
10518 10519 10520 10521 10522 10523 10524 10525 10526 10527 10528 10529 10530 
    1     1     1     1     2     1     2     3     1     1     1     1     6 
10531 10532 10533 10534 10535 10536 10537 10538 10539 10540 10541 10542 10543 
    1     1     1     1     1     5     1     1     1     1     1     1     1 
10544 10545 10546 10547 10548 10549 10550 10551 10552 10553 10554 10555 10556 
    1     4     2     1     1     1     1     4     1     1     1     1     1 
10557 10558 10559 10560 10561 10562 10563 10564 10565 10566 10567 10568 10569 
    1     7     1     3     1     1     1     1     7     4     1     1     8 
10570 10571 10572 10573 10574 10575 10576 10577 10578 10579 10580 10581 10582 
    1     1     1     1     1     1     1     1     1     1     1     1     1 
10583 10584 10585 10586 10587 10588 10589 10590 10591 10592 10593 10594 10595 
    7     1     1     1     2     7     4     1     1     1    18     1     1 
10596 10597 10598 10599 10600 10601 10602 10603 10604 10605 10606 10607 10608 
    2     1     1     1     1     1     5     1     3     1     2     2     1 
10609 10610 10611 10612 10613 10614 10615 10616 10617 10618 10619 10620 10621 
    1     1     1     1     4     1     1     3     1     2     1     3     1 
10622 10623 10624 10625 10626 10627 10628 10629 10630 10631 10632 10633 10634 
    2     1     1     1     1     1     1     3     1     1     1     1     1 
10635 10636 10637 10638 10639 10640 10641 10642 10643 10644 10645 10646 10647 
    1     1     1     1     1     1     7     1     1     1     1     7     1 
10648 10649 10650 10651 10652 10653 10654 10655 10656 10657 10658 10659 10660 
    1     1     1     1     1     1     1     1     1     1     4     4     1 
10661 10662 10663 10664 10665 10666 10667 10668 10669 10670 10671 10672 10673 
    1     2     1     1     2     1     1     1     5     1     1     3     2 
10674 10675 10676 10677 10678 10679 10680 10681 10682 10683 10684 10685 10686 
    1     3     1     1     1     1     1     1     1     1     1     2     1 
10687 10688 10689 10690 10691 10692 10693 10694 10695 10696 10697 10698 10699 
    1     1     1     1     2     2    41     1     1     1     1     1     1 
10700 10701 10702 10703 10704 10705 10706 10707 10708 10709 10710 10711 10712 
    4     1     1     1     1     1     2     1     1     1     1     1     2 
10713 10714 10715 10716 10717 10718 10719 10720 10721 10722 10723 10724 10725 
    1     3     1     1     1     1     1     2     1     1     1     1     1 
10726 10727 10728 10729 10730 10731 10732 10733 10734 10735 10736 10737 10738 
    1     1     1    41     1     2     1     1     1     1     1     2     1 
10739 10740 10741 10742 10743 10744 10745 10746 10747 10748 10749 10750 10751 
    1     8     1     9     1     1     1     6    15     1     1    10     1 
10752 10753 10754 10755 10756 10757 10758 10759 10760 10761 10762 10763 10764 
    1     2     1     1     1     1     1     1     1     1     1     1     1 
10765 10766 10767 10768 10769 10770 10771 10772 10773 10774 10775 10776 10777 
    1     1     1     1     1     3    18     3     1    41     4     1     1 
10778 10779 10780 10781 10782 10783 10784 10785 10786 10787 10788 10789 10790 
    1     1     1     1     1     1     1     1     1     1     2     1     1 
10791 10792 10793 10794 10795 10796 10797 10798 10799 10800 10801 10802 10803 
    1     1     1     5     1     1     1     1     2     1     1     1     1 
10804 10805 10806 10807 10808 10809 10810 10811 10812 10813 10814 10815 10816 
    1     1     1     1     2     1     1     2     1     1     1     1     1 
10817 10818 10819 10820 10821 10822 10823 10824 10825 10826 10827 10828 10829 
    1     1     1     1     1     1     1     1     3     1     1     1     2 
10830 10831 10832 10833 10834 10835 10836 10837 10838 10839 10840 10841 10842 
    1     2     1     1     1     1     1     2     1     1     1     4     1 
10843 10844 10845 10846 10847 10848 10849 10850 10851 10852 10853 10854 10855 
    2     1     1    41     1     1     1     1     1     1     1     1     1 
10856 10857 10858 10859 10860 10861 10862 10863 10864 10865 10866 10867 10868 
    1     1     1     1     1     4     1     1     1     2     1     2     9 
10869 10870 10871 10872 10873 10874 10875 10876 10877 10878 10879 10880 10881 
    1     1     1     1     1     1     1     7     1     1     1     1     1 
10882 10883 10884 10885 10886 10887 10888 10889 10890 10891 10892 10893 10894 
    1     3     2     4     1     2     1     1     1     2     1     1     2 
10895 10896 10897 10898 10899 10900 10901 10902 10903 10904 10905 10906 10907 
    1     1     1     1     1     1     1     1     1     1     1     1     1 
10908 10909 10910 10911 10912 10913 10914 10915 10916 10917 10918 10919 10920 
    1     1     8     1     1     1     1     1     1     1     1     1     2 
10921 10922 10923 10924 10925 10926 10927 10928 10929 10930 10931 10932 10933 
    1     1     2     1     1     1     1     1     1     4     1     1     1 
10934 10935 10936 10937 10938 10939 10940 10941 10942 10943 10944 10945 10946 
    1     2     2     1     1     1     1     3     4     1     4     7     1 
10947 10948 10949 10950 10951 10952 10953 10954 10955 10956 10957 10958 10959 
    1     3     2     1     1     2     1     1     1     3    41     1     1 
10960 10961 10962 10963 10964 10965 10966 10967 10968 10969 10970 10971 10972 
    1     1     1     1     1     1     1     7     1     1     3     3     1 
10973 10974 10975 10976 10977 10978 10979 10980 10981 10982 10983 10984 10985 
    1     1     7     1     1     6     1     1     5     1     1     4     1 
10986 10987 10988 10989 10990 10991 10992 10993 10994 10995 10996 10997 10998 
    1     1     1     1     4     1     1     1     1     1     1     1     1 
10999 11000 11001 11002 11003 11004 11005 11006 11007 11008 11009 11010 11011 
    1     1     1     1     1     1     1     1     1     1     1     1     1 
11012 11013 11014 11015 11016 11017 11018 11019 11020 11021 11022 11023 11024 
    1     1     1     1     1     1     1     1     1     2     1     1     1 
11025 11026 11027 11028 11029 11030 11031 11032 11033 11034 11035 11036 11037 
    1     1     3     2     1     3     1     7     1     1     1     1     1 
11038 11039 11040 11041 11042 11043 11044 11045 11046 11047 11048 11049 11050 
    1     1     1     5     1     1     2     1     3     1     1     1     1 
11051 11052 11053 11054 11055 11056 11057 11058 11059 11060 11061 11062 11063 
    1     1     1     1     1     1     4     8     1     1     1     1     2 
11064 11065 11066 11067 11068 11069 11070 11071 11072 11073 11074 11075 11076 
    1     1     2     1     1     1     5     1     1    14     1     1     7 
11077 11078 11079 11080 11081 11082 11083 11084 11085 11086 11087 11088 11089 
    1     1     1     1     1     1     1     1     1     1     2     1     1 
11090 11091 11092 11093 11094 11095 11096 11097 11098 11099 11100 11101 11102 
    1     1     4     1     1     1     1     1     1     1    14     1     8 
11103 11104 11105 11106 11107 11108 11109 11110 11111 11112 11113 11114 11115 
    1     1     1     1     1     1     3     1     6     1     2     1     1 
11116 11117 11118 11119 11120 11121 11122 11123 11124 11125 11126 11127 11128 
    1     1     1     1     2     2     2     1     1     1     1     3     1 
11129 11130 11131 11132 11133 11134 11135 11136 11137 11138 11139 11140 11141 
    1     6     1     1     1     1     2     1     2     2     2     1     1 
11142 11143 11144 11145 11146 11147 11148 11149 11150 11151 11152 11153 11154 
    1     1     1     4     2     1     1     1     1     1     1     1     2 
11155 11156 11157 11158 11159 11160 11161 11162 11163 11164 11165 11166 11167 
    1     1     1     1     1     1     1     1     1     1     1     1     1 
11168 11169 11170 11171 11172 11173 11174 11175 11176 11177 11178 11179 11180 
    1     1     2     1     1     1     1     1     1     3     2     1     1 
11181 11182 11183 11184 11185 11186 11187 11188 11189 11190 11191 11192 11193 
    1     2     1     1    10     1     3     1     1     1     1     1     1 
11194 11195 11196 11197 11198 11199 11200 11201 11202 11203 11204 11205 11206 
    1     1     2     1     1     3     1     1     1     1     1     1     1 
11207 11208 11209 11210 11211 11212 11213 11214 11215 11216 11217 11218 11219 
    1     1     1     1     1     1     1     1     4     1     1     1     1 
11220 11221 11222 11223 11224 11225 11226 11227 11228 11229 11230 11231 11232 
    1     2     2     1     1     2     1     1     1     1     1     1     3 
11233 11234 11235 11236 11237 11238 11239 11240 11241 11242 11243 11244 11245 
    1     1     1     1     4     1     1    10     1     5     1     1     7 
11246 11247 11248 11249 11250 11251 11252 11253 11254 11255 11256 11257 11258 
    1     2     2     1     1     1     3     1     1     1     1     1     2 
11259 11260 11261 11262 11263 11264 11265 11266 11267 11268 11269 11270 11271 
    1     1     1     2     1     1     1     1     1     1     1     1     2 
11272 11273 11274 11275 11276 11277 11278 11279 11280 11281 11282 11283 11284 
    1     2     1     1     1     1     2     5     1     1     1     1     1 
11285 11286 11287 11288 11289 11290 11291 11292 11293 11294 11295 11296 11297 
    1     1     1     1     1     1     1     1     1     1     1     1     1 
11298 11299 11300 11301 11302 11303 11304 11305 11306 11307 11308 11309 11310 
    1     1     1     2     1     1     1     1     1     1     7     1     1 
11311 11312 11313 11314 11315 11316 11317 11318 11319 11320 11321 11322 11323 
    1     1     1     1     1     2     1     1     2     5     1     1     1 
11324 11325 11326 11327 11328 11329 11330 11331 11332 11333 11334 11335 11336 
    1    41     1     1     1     1     1     1     1     1    15     1     1 
11337 11338 11339 11340 11341 11342 11343 11344 11345 11346 11347 11348 11349 
    2     1     1     1     1     1     1     1     1     1     1     2     2 
11350 11351 11352 11353 11354 11355 11356 11357 11358 11359 11360 11361 11362 
    1     1    12     1     1     1     1     1     5     1     1     1     1 
11363 11364 11365 11366 11367 11368 11369 11370 11371 11372 11373 11374 11375 
    1     1     1     1     3     3    41     1     1     1     3     5     1 
11376 11377 11378 11379 11380 11381 11382 11383 11384 11385 11386 11387 11388 
    1     1     1     1     1     1     2     1     1     1     1     1     1 
11389 11390 11391 11392 11393 11394 11395 11396 11397 11398 11399 11400 11401 
    2     1     1     1     1     1     1     1     1     1     1     1     1 
11402 11403 11404 11405 11406 11407 11408 11409 11410 11411 11412 11413 11414 
    1     1     4     1     1     1     1     1     1     1     1     3     3 
11415 11416 11417 11418 11419 11420 11421 11422 11423 11424 11425 11426 11427 
    4     1     1     1     2     1     1     1     1     1     1     1     2 
11428 11429 11430 11431 11432 11433 11434 11435 11436 11437 11438 11439 11440 
    1     1     1     1     1    41     1     1     1     5     1     3     1 
11441 11442 11443 11444 11445 11446 11447 11448 11449 11450 11451 11452 11453 
    2     1     1     1     1     1     1     1     1     1     1     1     7 
11454 11455 11456 11457 11458 11459 11460 11461 11462 11463 11464 11465 11466 
    7     1     1     1     1     2     1     1     1     2     1     1     1 
11467 11468 11469 11470 11471 11472 11473 11474 11475 11476 11477 11478 11479 
   14     2     7     1     1     1     2     1     1     1     1     3     1 
11480 11481 11482 11483 11484 11485 11486 11487 11488 11489 11490 11491 11492 
    2     2     1     1     1     3     1     1     1     1     1     1     1 
11493 11494 11495 11496 11497 11498 11499 11500 11501 11502 11503 11504 11505 
    1     1     1     1     1     1     1     3     1     1     1     1     1 
11506 11507 11508 11509 11510 11511 11512 11513 11514 11515 11516 11517 11518 
    1     1     1     1     1     1     1     2     1     1     1     1     1 
11519 11520 11521 11522 11523 11524 11525 11526 11527 11528 11529 11530 11531 
    1     1     3    18     5     2     1     1     1     1     1     1     1 
11532 11533 11534 11535 11536 11537 11538 11539 11540 11541 11542 11543 11544 
    1     1     1     1     1     1     2     3     1     1     1     1     1 
11545 11546 11547 11548 11549 11550 11551 11552 11553 11554 11555 11556 11557 
    1     1     1     1     1     5     1     2     1     2     1     1     1 
11558 11559 11560 11561 11562 11563 11564 11565 11566 11567 11568 11569 11570 
    2     1     1     5     1     3     2     1     2     1     1     1     5 
11571 11572 11573 11574 11575 11576 11577 11578 11579 11580 11581 11582 11583 
    2     1     1     1     1     1     2     1     1     2     7     3     1 
11584 11585 11586 11587 11588 11589 11590 11591 11592 11593 11594 11595 11596 
    2     1     1     1     2     5     3     3     1     1     2     1     2 
11597 11598 11599 11600 11601 11602 11603 11604 11605 11606 11607 11608 11609 
    8    12     1     1     1     2     1     1     4     1     1     1     1 
11610 11611 11612 11613 11614 11615 11616 11617 11618 11619 11620 11621 11622 
    4     1     1     1     1     1     1     1     1     1     1     3     1 
11623 11624 11625 11626 11627 11628 11629 11630 11631 11632 11633 11634 11635 
    1     4     1     2     1     1     1     1     1     1     4     1     1 
11636 11637 11638 11639 11640 11641 11642 11643 11644 11645 11646 11647 11648 
    1     1     1     1    11     1     3     1     3     4     1     1     4 
11649 11650 11651 11652 11653 11654 11655 11656 11657 11658 11659 11660 11661 
    1     1     1     1     1     1    10     1     1     1     1     1     1 
11662 11663 11664 11665 11666 11667 11668 11669 11670 11671 11672 11673 11674 
    1     1     1     7     7     1     1     3     1     1     2     1     1 
11675 11676 11677 11678 11679 11680 11681 11682 11683 11684 11685 11686 11687 
    1     1     1     1     1     1     1     1     1     3     1     1     1 
11688 11689 11690 11691 11692 11693 11694 11695 11696 11697 11698 11699 11700 
    1     1     1     1     1     1     1     1     1     1     1     1     1 
11701 11702 11703 11704 11705 11706 11707 11708 11709 11710 11711 11712 11713 
    1     1     1     1     3     1     1     1     1    12     3     1     1 
11714 11715 11716 11717 11718 11719 11720 11721 11722 11723 11724 11725 11726 
    9     1     1     1     2     1     1     1     2     1     1     1     1 
11727 11728 11729 11730 11731 11732 11733 11734 11735 11736 11737 11738 11739 
    1     1     1     1     1     1     1     1     1     1     1     1     1 
11740 11741 11742 11743 11744 11745 11746 11747 11748 11749 11750 11751 11752 
    1     1     1     1     1     1     1     1     1    11     1     1     1 
11753 11754 11755 11756 11757 11758 11759 11760 11761 11762 11763 11764 11765 
    1     1     3     1     1     1     2    18     1     1     1     1     1 
11766 11767 11768 11769 11770 11771 11772 11773 11774 11775 11776 11777 11778 
    1     1     1     1     1     1     4     2     2     1     5     1     1 
11779 11780 11781 11782 11783 11784 11785 11786 11787 11788 11789 11790 11791 
    1     4     1     1     5     1     1     1     1     1     1     2     1 
11792 11793 11794 11795 11796 11797 11798 11799 11800 11801 11802 11803 11804 
    1     1     1     2     1     1     1     1     1     1     1     2     1 
11805 11806 11807 11808 11809 11810 11811 11812 11813 11814 11815 11816 11817 
    1     4     4     2     4     1     1     1     1     1     1     1     1 
11818 11819 11820 11821 11822 11823 11824 11825 11826 11827 11828 11829 11830 
    1     1     1     8     1     1     2     1     1     1     1     1     1 
11831 11832 11833 11834 11835 11836 11837 11838 11839 11840 11841 11842 11843 
    1     4     1     1     1     1     1     1     1     3     2     1     3 
11844 11845 11846 11847 11848 11849 11850 11851 11852 11853 11854 11855 11856 
    2     1     4     1     3     1     1     1     1     1     3     1     2 
11857 11858 11859 11860 11861 11862 11863 11864 11865 11866 11867 11868 11869 
    1     1     1     1     1     1     1     1     2     1     1     1     8 
11870 11871 11872 11873 11874 11875 11876 11877 11878 11879 11880 11881 11882 
    1     4     3     1     1     1     1     1     2     1     1     1    10 
11883 11884 11885 11886 11887 11888 11889 11890 11891 11892 11893 11894 11895 
    1     4     1     5     1     1     1     1     8     3     3     1     1 
11896 11897 11898 11899 11900 11901 11902 11903 11904 11905 11906 11907 11908 
    1     1     1     1     1     1     1     1     2     1     1     1     2 
11909 11910 11911 11912 11913 11914 11915 11916 11917 11918 11919 11920 11921 
    1     1     1     1     1     1     1     1     1     1     1     1     1 
11922 11923 11924 11925 11926 11927 11928 11929 11930 11931 11932 11933 11934 
    1     1     2     1     1     1     4     1     1     1     5     3     1 
11935 11936 11937 11938 11939 11940 11941 11942 11943 11944 11945 11946 11947 
    1     1     1     1     1     1     2     1     1     1     1     3     1 
11948 11949 11950 11951 11952 11953 11954 11955 11956 11957 11958 11959 11960 
    1     7     1     1     1     2     1     1     1     1     1     1     1 
11961 11962 11963 11964 11965 11966 11967 11968 11969 11970 11971 11972 11973 
    1     1     2     1     1     1     1     1     1     1     1     1     1 
11974 11975 11976 11977 11978 11979 11980 11981 11982 11983 11984 11985 11986 
    1     1     1     1     1     2     2     1     1     1     1     1    41 
11987 11988 11989 11990 11991 11992 11993 11994 11995 11996 11997 11998 11999 
    1     1     1     1     1     1     1     2     7     1     1     1     3 
12000 12001 12002 12003 12004 12005 12006 12007 12008 12009 12010 12011 12012 
    2     4    12     1    15     1     1     3     1     1     1     1     1 
12013 12014 12015 12016 12017 12018 12019 12020 12021 12022 12023 12024 12025 
    1     2     1     1     1     2     1     1     1     1     2     1     1 
12026 12027 12028 12029 12030 12031 12032 12033 12034 12035 12036 12037 12038 
    1    14     1     1     1     1     1     1     1     1     1     1     1 
12039 12040 12041 12042 12043 12044 12045 12046 12047 12048 12049 12050 12051 
    2     1     1     4     1     1     2     1     1     1     1     1     1 
12052 12053 12054 12055 12056 12057 12058 12059 12060 12061 12062 12063 12064 
    1     1     1     1    41     1     1     2     1     1     1     2     1 
12065 12066 12067 12068 12069 12070 12071 12072 12073 12074 12075 12076 12077 
    1     1     1     1     1     1    18     5     1     1     1     1     1 
12078 12079 12080 12081 12082 12083 12084 12085 12086 12087 12088 12089 12090 
    3     1     2     1     3     3     1     1     2     1     1     1     1 
12091 12092 12093 12094 12095 12096 12097 12098 12099 12100 12101 12102 12103 
    1     2     1     1     1     1     2     1     1    14     7     3     1 
12104 12105 12106 12107 12108 12109 12110 12111 12112 12113 12114 12115 12116 
    1     1     1     1     1     1     1     1    10     2     1     1     1 
12117 12118 12119 12120 12121 12122 12123 12124 12125 12126 12127 12128 12129 
    1     1     1     2     1     1     1     1     2    41     1     1     1 
12130 12131 12132 12133 12134 12135 12136 12137 12138 12139 12140 12141 12142 
    1     7     1     1     1     1     1     1     1     1    12     7     1 
12143 12144 12145 12146 12147 12148 12149 12150 12151 12152 12153 12154 12155 
    1     1     1     1     2    41     1     1     1     1     1     1     1 
12156 12157 12158 12159 12160 12161 12162 12163 12164 12165 12166 12167 12168 
    1     1     1     1     1     1     1     1    41     1     1     1     2 
12169 12170 12171 12172 12173 12174 12175 12176 12177 12178 12179 12180 12181 
    1     1     1     1     1     1     1     1     1     1     1     3     1 
12182 12183 12184 12185 12186 12187 12188 12189 12190 12191 12192 12193 12194 
    1     1     2     1     1     1     1     3     1     2     1     1     1 
12195 12196 12197 12198 12199 12200 12201 12202 12203 12204 12205 12206 12207 
    1     1     1     1     1     1    41     1     5    18     1     2     1 
12208 12209 12210 12211 12212 12213 12214 12215 12216 12217 12218 12219 12220 
    1     2     1     1     1     1     1     1     1     1     1     1     1 
12221 12222 12223 12224 12225 12226 12227 12228 12229 12230 12231 12232 12233 
    1     1     1     1     1     1     3     2     1     2     1     1     1 
12234 12235 12236 12237 12238 12239 12240 12241 12242 12243 12244 12245 12246 
    3     1     1     2     1     1     1     1     1     1     1     1     2 
12247 12248 12249 12250 12251 12252 12253 12254 12255 12256 12257 12258 12259 
    1     1     2     1     1     1     1     1     5     1     1     1     1 
12260 12261 12262 12263 12264 12265 12266 12267 12268 12269 12270 12271 12272 
    1     1     2     5     1     1     1     1     1     1     1     1     1 
12273 12274 12275 12276 12277 12278 12279 12280 12281 12282 12283 12284 12285 
    5     1     2     5     2     1     1     1     1     3     1     1     1 
12286 12287 12288 12289 12290 12291 12292 12293 12294 12295 12296 12297 12298 
    1     1     1     1     1     1     1     3     1     1     1     1     1 
12299 12300 12301 12302 12303 12304 12305 12306 12307 12308 12309 12310 12311 
    1     1     1     1     1     6     4     1     1     1     1     1     1 
12312 12313 12314 12315 12316 12317 12318 12319 12320 12321 12322 12323 12324 
    1     1     1     2     1     1     1     1     1     1     2     2     1 
12325 12326 12327 12328 12329 12330 12331 12332 12333 12334 12335 12336 12337 
    1     1     1     2     1     1     1     1     1     1     1     2     1 
12338 12339 12340 12341 12342 12343 12344 12345 12346 12347 12348 12349 12350 
    1     1     1     1     1     1     1     1     1     1     1     1     1 
12351 12352 12353 12354 12355 12356 12357 12358 12359 12360 12361 12362 12363 
    1     3     3     1     1     1     2     1     1     2     1     1     1 
12364 12365 12366 12367 12368 12369 12370 12371 12372 12373 12374 12375 12376 
    1     2     1     1     1     1     1     1     1     1     1     1     1 
12377 12378 12379 12380 12381 12382 12383 12384 12385 12386 12387 12388 12389 
    1     1     1     1     1     1     1     1     1     1     1     1     1 
12390 12391 12392 12393 12394 12395 12396 12397 12398 12399 12400 12401 12402 
    1     1     1     1     1     1     2     2     1     1     2     1     2 
12403 12404 12405 12406 12407 12408 12409 12410 12411 12412 12413 12414 12415 
    1     1     1     1     2     1     1     1     1     1     1     1     3 
12416 12417 12418 12419 12420 12421 12422 12423 12424 12425 12426 12427 12428 
    1     1     1     1     1     2     4     1     1     2     2     1     1 
12429 12430 12431 12432 12433 12434 12435 12436 12437 12438 12439 12440 12441 
    1     1     1     1     1     1     2     1     1     1     1     1     1 
12442 12443 12444 12445 12446 12447 12448 12449 12450 12451 12452 12453 12454 
    1     1     1     1     1     1     1     1     1     1     1     1     1 
12455 12456 12457 12458 12459 12460 12461 12462 12463 12464 12465 12466 12467 
    1     1     1     1     1     1     1     1     1     1     1     1     1 
12468 12469 12470 12471 12472 12473 12474 12475 12476 12477 12478 12479 12480 
    2     1     1     1     1     1     1     1     1     1     1     1     1 
12481 12482 12483 12484 12485 12486 12487 12488 12489 12490 12491 12492 12493 
    1     2     1     1     1     1     2     1     1     1     1     1     3 
12494 12495 12496 12497 12498 12499 12500 12501 12502 12503 12504 12505 12506 
    1     1     2     1     3     1     2     1     1     1     1     1     1 
12507 12508 12509 12510 12511 12512 12513 12514 12515 12516 12517 12518 12519 
    1     1     1     3     2     1     1     1     1     3     1     1     1 
12520 12521 12522 12523 12524 12525 12526 12527 12528 12529 12530 12531 12532 
    1     1     1     1     1     1     1     1     1     1     1     1     3 
12533 12534 12535 12536 12537 12538 12539 12540 12541 12542 12543 12544 12545 
    1     1     1     2     1     1     4     1     1     1     2     1     1 
12546 12547 12548 12549 12550 12551 12552 12553 12554 12555 12556 12557 12558 
    1     1     1     1     1     1     1     1     1     1     1     2     1 
12559 12560 12561 12562 12563 12564 12565 12566 12567 12568 12569 12570 12571 
    1     3     1     1     1     2     1     2     1     1     1     1     1 
12572 12573 12574 12575 12576 12577 12578 12579 12580 12581 12582 12583 12584 
    1     2     1     1     1     1     2     2     3     1     1     1     2 
12585 12586 12587 12588 12589 12590 12591 12592 12593 12594 12595 12596 12597 
    1     1     1     1     1     1     1     2     1     2     2     1     1 
12598 12599 12600 12601 12602 12603 12604 12605 12606 12607 12608 12609 12610 
    1     1     1     2     1     1     1     1     1     1     5     1     1 
12611 12612 12613 12614 12615 12616 12617 12618 12619 12620 12621 12622 12623 
    1     1     1     1     6     1     1     1     1     1     1     2     1 
12624 12625 12626 12627 12628 12629 12630 12631 12632 12633 12634 12635 12636 
    2     1     1     1     1     1     1     1     1     1     1     1     1 
12637 12638 12639 12640 12641 12642 12643 12644 12645 12646 12647 12648 12649 
    1     1     6     1     1     2     1     1     1     1     1     1     5 
12650 12651 12652 12653 12654 12655 12656 12657 12658 12659 12660 12661 12662 
    1     1     1     2     1     2     1     1     1     1     1     1     1 
12663 12664 12665 12666 12667 12668 12669 12670 12671 12672 12673 12674 12675 
    1     1     1     1     2     1     1     1     1     1     1     3     1 
12676 12677 12678 12679 12680 12681 12682 12683 12684 12685 12686 12687 12688 
    1     1     2     1     3     1     2     7     2     1     1     2     1 
12689 12690 12691 12692 12693 12694 12695 12696 12697 12698 12699 12700 12701 
    1     4     7     7     1     1     1     1     1     1     1     1     1 
12702 12703 12704 12705 12706 12707 12708 12709 12710 12711 12712 12713 12714 
    2     1     1     1     1     1     1     1     1     1     1     2     1 
12715 12716 12717 12718 12719 12720 12721 12722 12723 12724 12725 12726 12727 
    1     4     1     1     1     1     1     1     1     1     1     1     1 
12728 12729 12730 12731 12732 12733 12734 12735 12736 12737 12738 12739 12740 
    1     1     1     1     1     1     1     1     1     1     1     1     3 
12741 12742 12743 12744 12745 12746 12747 12748 12749 12750 12751 12752 12753 
    1     1     1     1     1     1     1     1     1     1     1     1     1 
12754 12755 12756 12757 12758 12759 12760 12761 12762 12763 12764 12765 12766 
    1     1     1     1     4     1     1     1     1     1     1     1     3 
12767 12768 12769 12770 12771 12772 12773 12774 12775 12776 12777 12778 12779 
    1     1     1     1     1     1     1     5     1     1     1     1     1 
12780 12781 12782 12783 12784 12785 12786 12787 12788 12789 12790 12791 12792 
    1     1     1     1     1     1     1     1     1     1     1     2     1 
12793 12794 12795 12796 12797 12798 12799 12800 12801 12802 12803 12804 12805 
    1     1     1     1     1     1     1     1     1     1     1     2     1 
12806 12807 12808 12809 12810 12811 12812 12813 12814 12815 12816 12817 12818 
    2     1     2     1     3     3     1     1     1     1     1     1     1 
12819 12820 12821 12822 12823 12824 12825 12826 12827 12828 12829 12830 12831 
    1     1     1     1     1     1     1     1     2     1     1     1     1 
12832 12833 12834 12835 12836 12837 12838 12839 12840 12841 12842 12843 12844 
    1     1     1     1     1     1     1     1     1     1     2     6     1 
12845 12846 12847 12848 12849 12850 12851 12852 12853 12854 12855 12856 12857 
    1     1     1     1     1     1     1     1     1     1     1     1     1 
12858 12859 12860 12861 12862 12863 12864 12865 12866 12867 12868 12869 12870 
    1     1     1     1     2     1     2     2     1     3     1     1     1 
12871 12872 12873 12874 12875 12876 12877 12878 12879 12880 12881 12882 12883 
    1     1     1     4     1     1     1     1     5     4     1     1     1 
12884 12885 12886 12887 12888 12889 12890 12891 12892 12893 12894 12895 12896 
    1     6     1     1     1     1     1     1     1     1     1     6     1 
12897 12898 12899 12900 12901 12902 12903 12904 12905 12906 12907 12908 12909 
    1     1     1     1     1     1     1     1     1     1     1     1     2 
12910 12911 12912 12913 12914 12915 12916 12917 12918 12919 12920 12921 12922 
    3     1     1     1     1     1     1     1     1     1     1     3     1 
12923 12924 12925 12926 12927 12928 12929 12930 12931 12932 12933 12934 12935 
    2     1     1     1     1     1     1     1     3     1     1     1     1 
12936 12937 12938 12939 12940 12941 12942 12943 12944 12945 12946 12947 12948 
    1     1     1     1     1     1     1     1     1     1     1     1     1 
12949 12950 12951 12952 12953 12954 12955 12956 12957 12958 12959 12960 12961 
    1     1     1     1     1     2     1     1     1     1     1     1     1 
12962 12963 12964 12965 12966 12967 12968 12969 12970 12971 12972 12973 12974 
    1     1     1     1     1     1     1     1     1     1     2     1     1 
12975 12976 12977 12978 12979 12980 12981 12982 12983 12984 12985 12986 
    1     1     1     2     1     1     1     1     1     1     1     1 
sum(multiplicity(bmracc_ppp)>1)
[1] 2293

There are over 2293 duplicates. In this case, it means we have 2293 overlapping data points.

Using the rjitter() function, we deal with these data points by spacing them out slightly around the point. The function adds noise to the data and spreads these points out a little to facilitate visualization.

bmr_ppp_jit <- rjitter(bmracc_ppp, 
                             retry=TRUE, 
                             nsim=1, 
                             drop=TRUE)

Creating an owin object

When analyzing Spatial Point patterns, it is a good practice to confine the boundaries of the analysis with a Geographical area, such as Singapore’s boundary. Using the spatstat package, we can create an owin object that is designed to represent such polygonal regions.

We use the as.owin() function as shown in the code chunk below.

bmr_owin <- as.owin(bmr_boundary)
plot(bmr_owin)

Computing KDE using automatic bandwidth selection

We use the density() function of the spatstat package to compute the kernel density. These are the key configurations used in the computation:

  • bw.diggle() automatic bandwidth selection method.

  • The smoothing kernel used in this instance is gaussian. Other smoothing methods include “epanechnikov”, “quartic”. or “disc”.

kde_bmracc_bw <- density(bmr_ppp_jit,
                              sigma=bw.diggle,
                              edge=TRUE,
                            kernel="gaussian") 

The other two methods aside from bw.diggle() are bw.scott() and bw.ppl(). While bw.diggle() focuses on minimizing error in spatial density estimation for point process data and is tailor-made for spatial applications, bw.scott() (Scott’s rule) provides a rule-of-thumb bandwidth and is used in several KDE applications across different types of data besides just spatial data. bw.ppl() uses a more complex and data-driven approach (plug-in) for selecting the bandwidth, aiming to minimize the error in KDE. Like bw.diggle(), It is also tailor-made for spatial point processes, however, it takes a slightly different approach to bw.diggle()

We will now plot the above using the plot() function.

plot(kde_bmracc_bw)

Immediately we notice that the density values are very small. This is because the unit of measurement is in meter, meaning that the density values are computed with a unit of ‘number of points per square meter.’

We now use the rescale.ppp() function of the spatstat package to convert the unit of measurement from meter to kilometer. This is done by implementing the code chunk below.

bmracc_ppp.km <- rescale.ppp(bmr_ppp_jit, 1000, "km")

After this, we re-deploy the density() function using the re-scaled data and plot the KDE map.

kde_bmracc.bw <- density(bmracc_ppp.km, 
                         sigma=bw.diggle, 
                         edge=TRUE, 
                         kernel="gaussian")
plot(kde_bmracc.bw)

Converting the KDE output into a grid object

Gridded raster

We convert the gridded kernel density objects into RasterLayer object by using raster() of the raster package.

kde_bmracc_bw_raster <- raster(kde_bmracc.bw)

The CRS above is NA, so we now set the CRS to EPSG 32647 of Thailand.

After that, we can implement the plot() function to plot the same.

projection(kde_bmracc_bw_raster) <- CRS("+init=EPSG:32647")
plot(kde_bmracc_bw_raster)

From the above, we infer that the south-east region of Bangkok Metropolitan Region, Samut Prakan Province, specifically has a few hotspots, we want to further analyze the cause of this, so we filter down our data.

smt_prk_bndry=bmr_boundary%>%filter(ADM1_EN=='Samut Prakan')
qtm(smt_prk_bndry)

further eda

# Switch to interactive mode (optional)
tmap_mode("view")

tm_shape(kde_bmracc_bw_raster) +
  tm_raster(palette = "-RdYlGn", style = "cont", title = "Accident Density", midpoint = NA, 
            colorNA = NULL) +  # colorNA = NULL will make NAs transparent
  tm_shape(bmr_roads) +
  tm_lines(col = "black", lwd = 1) +  # Overlay the roads
  tm_layout(legend.outside = TRUE)
bmr_speedingacc=bmr_accsf%>%filter(presumed_cause=='speeding')
# Set tmap to interactive view mode (optional for exploration)
tmap_mode("view")

# Create the map with boundaries and accident points
tm_shape(bmr_boundary) +
  tm_borders(col = "black") +  # Show the boundaries
  tm_shape(bmr_speedingacc) +
  tm_dots(col = "red", size = 0.01,  popup.vars = c("Accident Cause" = "presumed_cause", "Hour of day"="hourofday"),  # Add cause to popup
          title = "Accidents") +  # Show accident points as red dots
  tm_layout(frame = FALSE, legend.outside = TRUE)
# Switch back to static mode after rendering (if needed)
tmap_mode("plot")
# Assuming roads have a column for road type, such as 'road_type'
accidents_on_roads <- st_join(bmr_accsf, bmr_roads, join = st_intersects)

# View the result
head(accidents_on_roads)
Simple feature collection with 6 features and 51 fields
Geometry type: POINT
Dimension:     XY
Bounding box:  xmin: 627012.3 ymin: 1502876 xmax: 693488.9 ymax: 1533381
Projected CRS: WGS 84 / UTM zone 47N
# A tibble: 6 × 52
  acc_code incident_datetime   report_datetime     province_th  province_en  
     <dbl> <dttm>              <dttm>              <chr>        <chr>        
1   571882 2019-01-01 02:25:00 2019-01-02 17:32:00 นครปฐม       Nakhon Pathom
2   600001 2019-01-01 03:00:00 2019-01-05 10:33:00 นนทบุรี        Nonthaburi   
3   605043 2019-01-01 03:00:00 2019-03-29 08:22:00 สมุทรปราการ   Samut Prakan 
4   629691 2019-01-01 03:05:00 2019-01-01 03:05:00 กรุงเทพมหานคร Bangkok      
5   571887 2019-01-01 04:30:00 2019-01-02 17:32:00 นครปฐม       Nakhon Pathom
6   599234 2019-01-01 04:45:00 2019-01-02 08:28:00 สมุทรปราการ   Samut Prakan 
# ℹ 47 more variables: agency <chr>, route <chr>, vehicle_type <chr>,
#   presumed_cause <chr>, accident_type <chr>,
#   number_of_vehicles_involved <dbl>, number_of_fatalities <dbl>,
#   number_of_injuries <dbl>, weather_condition <chr>, road_description <chr>,
#   slope_description <chr>, geometry <POINT [m]>, Month <dbl>,
#   Month_fac <ord>, dayofmonth <int>, hourofday <int>, traffic_period <chr>,
#   Shape_Leng <dbl>, Shape_Area <dbl>, ADM1_EN <chr>, ADM1_TH <chr>, …
# Count accidents by road type
accidents_by_road_type <- accidents_on_roads %>%
  group_by(vehicle_type) %>%
  summarise(accident_count = n())%>%
  arrange(desc(accident_count))%>%
  slice_head(n=5)

# Bar plot showing the number of accidents by road type
ggplot(accidents_by_road_type, aes(x = vehicle_type, y = accident_count, fill = vehicle_type)) +
  geom_bar(stat = "identity") +
  labs(title = "Number of Accidents by Road Type", x = "Vehicle Type", y = "Accident Count") +
  theme_minimal() +
  theme(legend.position = "none")

Second-Order Spatial Point Pattern Analysis.

We now focus on Second Order Spatial Point Patterns Analysis.

We first filter the data down to the regions of interest and create separate boundaries for each of them. Following this, we produce an owin object using the as.owin() function.

bkk <- bmr_boundary %>%
  filter(ADM1_EN == "Bangkok")
smt_pkn <- bmr_boundary %>%
  filter(ADM1_EN == "Samut Prakan")
ntbr <- bmr_boundary %>%
  filter(ADM1_EN == "Nonthaburi")
nkn_ptn<- bmr_boundary %>%
  filter(ADM1_EN == "Nakhon Pathom")
smt_skn<- bmr_boundary %>%
  filter(ADM1_EN == "Samut Sakhon")
bkk_owin = as.owin(bkk)
smt_pkn_owin = as.owin(smt_pkn)
ntbr_owin = as.owin(ntbr)
nkn_ptn_owin = as.owin(nkn_ptn)
smt_skn_owin = as.owin(smt_skn)


acc_bkk_ppp = bmr_ppp_jit[bkk_owin]
acc_smt_pkn_ppp = bmr_ppp_jit[smt_pkn_owin]
acc_ntbr_ppp = bmr_ppp_jit[ntbr_owin]
acc_nkn_ptn_ppp = bmr_ppp_jit[nkn_ptn_owin]
acc_smt_skn_ppp= bmr_ppp_jit[smt_skn_owin]

Calculating G-function estimates and testing for Complete Spatial Randomness

We use the Gest() function of the spatstat package to compute a G-function estimation for Bangkok. Following that, we plot the result.

G_bkk = Gest(acc_bkk_ppp, correction = "border")
plot(G_bkk, xlim=c(0,500))

We now carry out the monte carlo simulation test for complete spatial randomness.

G_bkk.csr <- envelope(acc_bkk_ppp, Gest, nsim = 99)
Generating 99 simulations of CSR  ...
1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20,
21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60,
61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80,
81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 
99.

Done.
plot(G_bkk.csr)

It is clear that that there is clustering exhibited in this scenario as the black line, observed values, is far above the envelope. We have sufficient evidence to reject the null hypothesis.

We use the Gest() function of the spatstat package to compute a G-function estimation for Samut Prakhan. Following that, we plot the result.

G_smt_pkn = Gest(acc_smt_pkn_ppp, correction = "border")
plot(G_smt_pkn, xlim=c(0,500))

We now implement a monte carlo simulation test for Complete Spatial Random in Samut Prakan.

G_smt_pkn.csr <- envelope(acc_smt_pkn_ppp, Gest, nsim = 199)
Generating 199 simulations of CSR  ...
1, 2, 3, 4.6.8.10.12.14.16.18.20.22.24.26.28.30.32.34
.36.38.40.42.44.46.48.50.52.54.56.58.60.62.64.66.68.70.72.74
.76.78.80.82.84.86.88.90.92.94.96.98.100.102.104.106.108.110.112.114
.116.118.120.122.124.126.128.130.132.134.136.138.140.142.144.146.148.150.152.154
.156.158.160.162.164.166.168.170.172.174.176.178.180.182.184.186.188.190.192.194
.196.198
199.

Done.
plot(G_smt_pkn.csr)

We once again have sufficient evidence to reject the null hypothesis and conclude that accidents in Samut Prakan do indeed exhibit clustering, more so than is expected in a region that is randomly distributed.

We use the Gest() function of the spatstat package to compute a G-function estimation for Nonthaburi. Following that, we plot the result.

G_ntbr = Gest(acc_ntbr_ppp, correction = "border")
plot(G_ntbr, xlim=c(0,500))

We now implement a Monte-Carlo Simulation test to check for complete spatial randomness of roads accidents in Nonthaburi.

G_ntbr.csr <- envelope(acc_ntbr_ppp, Gest, nsim = 199)
Generating 199 simulations of CSR  ...
1, 2, 3, 4.6.8.10.12.14.16.18.20.22.24.26.28.30.32.34
.36.38.40.42.44.46.48.50.52.54.56.58.60.62.64.66.68.70.72.74
.76.78.80.82.84.86.88.90.92.94.96.98.100.102.104.106.108.110.112.114
.116.118.120.122.124.126.128.130.132.134.136.138.140.142.144.146.148.150.152.154
.156.158.160.162.164.166.168.170.172.174.176.178.180.182.184.186.188.190.192.194
.196.198
199.

Done.
plot(G_ntbr.csr)

We use the Gest() function of the spatstat package to compute a G-function estimation for Nakhon Pathom. Following that, we plot the result.

G_nkn_ptn = Gest(acc_nkn_ptn_ppp, correction = "border")
plot(G_nkn_ptn, xlim=c(0,500))

We now conduct the Monte-Carlo Simulation test for complete spatial randomness for accidents in Nakhon Pathom.

G_nkn_ptn.csr <- envelope(acc_nkn_ptn_ppp, Gest, nsim = 199)
Generating 199 simulations of CSR  ...
1, 2, 3, 4.6.8.10.12.14.16.18.20.22.24.26.28.30.32.34
.36.38.40.42.44.46.48.50.52.54.56.58.60.62.64.66.68.70.72.74
.76.78.80.82.84.86.88.90.92.94.96.98.100.102.104.106.108.110.112.114
.116.118.120.122.124.126.128.130.132.134.136.138.140.142.144.146.148.150.152.154
.156.158.160.162.164.166.168.170.172.174.176.178.180.182.184.186.188.190.192.194
.196.198
199.

Done.
plot(G_nkn_ptn.csr)

We use the Gest() function of the spatstat package to compute a G-function estimation for Samut Sakhon. Following that, we plot the result.

G_smt_skn = Gest(acc_smt_skn_ppp, correction = "border")
plot(G_smt_skn, xlim=c(0,500))

We now conduct the Monte-Carlo Simulation test for complete spatial randomness for accidents in Samut Sakhon.

G_smt_skn.csr <- envelope(acc_smt_skn_ppp, Gest, nsim = 199)
Generating 199 simulations of CSR  ...
1, 2, 3, 4.6.8.10.12.14.16.18.20.22.24.26.28.30.32.34
.36.38.40.42.44.46.48.50.52.54.56.58.60.62.64.66.68.70.72.74
.76.78.80.82.84.86.88.90.92.94.96.98.100.102.104.106.108.110.112.114
.116.118.120.122.124.126.128.130.132.134.136.138.140.142.144.146.148.150.152.154
.156.158.160.162.164.166.168.170.172.174.176.178.180.182.184.186.188.190.192.194
.196.198
199.

Done.
plot(G_smt_skn.csr)

bmr_districts=st_intersection(map2_sf, bmr_roads)
write_rds(bmr_districts, "data/rds/bmr_districts_roads")
bmr_districts=read_rds("data/rds/bmr_districts_roads")
# Set tmap to interactive view mode (optional for exploration)
tmap_mode("plot")

# Create the map with boundaries and accident points
tm_shape(bmr_boundary2) +
  tm_borders(col = "black") +  # Show the boundaries
  tm_shape(bmr_accsf) +
  tm_dots(col = "red", size = 0.01) +  # Show accident points as red dots
  tm_layout(frame = FALSE, legend.outside = TRUE)

# Perform a spatial join to assign accidents to districts
accidents_with_districts <- st_join(bmr_accsf, bmr_boundary2, join = st_intersects)
# Group by adm2_en and count the number of accidents per district
accident_counts_by_adm2 <- accidents_with_districts %>%
  group_by(ADM2_EN) %>%
  summarise(accident_count = n())

# View the resulting dataframe
print(accident_counts_by_adm2)
Simple feature collection with 73 features and 2 fields
Geometry type: GEOMETRY
Dimension:     XY
Bounding box:  xmin: 591277.5 ymin: 1486846 xmax: 710166.1 ymax: 1576520
Projected CRS: WGS 84 / UTM zone 47N
# A tibble: 73 × 3
   ADM2_EN         accident_count                                       geometry
   <chr>                    <int>                               <MULTIPOINT [m]>
 1 Ban Phaeo                  110 ((613054.2 1498274), (615459.1 1494000), (615…
 2 Bang Bo                    417 ((696848.1 1494239), (696911.6 1494215), (697…
 3 Bang Bon                   100 ((647897.3 1507733), (647984.3 1507801), (648…
 4 Bang Bua Thong             238 ((644467.4 1538181), (645940.6 1538078), (646…
 5 Bang Kapi                   10 ((673251.8 1520460), (673253.2 1520520), (673…
 6 Bang Khae                  320 ((650262.2 1517270), (651917.2 1516322), (651…
 7 Bang Khen                  126 ((671860.4 1534927), (672097.5 1534812), (672…
 8 Bang Kho Laem               13 ((661444.6 1515089), (661488.6 1515062), (661…
 9 Bang Khun Thian            273 ((649010.8 1505014), (649042.5 1505674), (649…
10 Bang Kruai                  50 ((643844.5 1527423), (644559.8 1526978), (645…
# ℹ 63 more rows

Spatial Weights

# Perform a left join with the boundary data
boundary_with_accident_count <- bmr_boundary2 %>%
  st_join(accident_counts_by_adm2, by = "ADM2_EN")
boundary_with_accident_count <- boundary_with_accident_count %>%
  mutate(accident_count = ifelse(is.na(accident_count), 0, accident_count))
write_rds(boundary_with_accident_count, "data/rds/boundary_with_acc_count")
boundary_with_accident_count=read_rds("data/rds/boundary_with_acc_count")
basemap <- tm_shape(boundary_with_accident_count) +
  tm_polygons() +
  tm_text("ADM2_EN.x", size=0.5)
gdppc <- qtm(boundary_with_accident_count, "accident_count")
tmap_arrange(basemap, gdppc, asp=1, ncol=2)

wm_q <- poly2nb(boundary_with_accident_count, queen=TRUE)
summary(wm_q)
Neighbour list object:
Number of regions: 79 
Number of nonzero links: 438 
Percentage nonzero weights: 7.018106 
Average number of links: 5.544304 
Link number distribution:

 2  3  4  5  6  7  8  9 
 1  5 10 24 20 12  6  1 
1 least connected region:
66 with 2 links
1 most connected region:
30 with 9 links
wm_r <- poly2nb(boundary_with_accident_count, queen=FALSE) 
summary(wm_r)
Neighbour list object:
Number of regions: 79 
Number of nonzero links: 422 
Percentage nonzero weights: 6.761737 
Average number of links: 5.341772 
Link number distribution:

 2  3  4  5  6  7  8 
 1  5 16 20 22 11  4 
1 least connected region:
66 with 2 links
4 most connected regions:
1 5 17 54 with 8 links
longitude <- map_dbl(boundary_with_accident_count$geometry, ~st_centroid(.x)[[1]])
latitude <- map_dbl(boundary_with_accident_count$geometry, ~st_centroid(.x)[[2]])
coords <- cbind(longitude, latitude)
head(coords)
     longitude latitude
[1,]  661951.4  1521172
[2,]  664121.1  1523923
[3,]  700735.2  1532207
[4,]  664808.5  1518057
[5,]  676193.5  1533602
[6,]  677305.1  1522820
par(mfrow=c(1,2))
plot(boundary_with_accident_count$geometry, border="lightgrey", main="Queen Contiguity")
plot(wm_q, coords, pch = 19, cex = 0.6, add = TRUE, col= "purple")
plot(boundary_with_accident_count$geometry, border="lightgrey", main="Rook Contiguity")
plot(wm_r, coords, pch = 19, cex = 0.6, add = TRUE, col = "purple")

Adaptive Distance Weight Matrix

knn6 <- knn2nb(knearneigh(coords, k=6))
knn6
Neighbour list object:
Number of regions: 79 
Number of nonzero links: 474 
Percentage nonzero weights: 7.594937 
Average number of links: 6 
Non-symmetric neighbours list
plot(boundary_with_accident_count$geometry, border="lightgrey")
plot(knn6, coords, pch = 19, cex = 0.6, add = TRUE, col = "red")

Row standardized weights matrix

Weights Based on Inversed Distance Weighting (IDW)

dist <- nbdists(wm_q, coords, longlat = FALSE)
ids <- lapply(dist, function(x) 1/(x))
ids
[[1]]
[1] 0.0002854535 0.0006582134 0.0004566217 0.0002167536 0.0003080119
[6] 0.0002757322 0.0003371576 0.0002806965

[[2]]
[1] 0.0002854535 0.0002055287 0.0003012437 0.0003439200 0.0003703229
[6] 0.0002193608 0.0001383976 0.0002982074

[[3]]
[1] 8.230456e-05 7.194802e-05 7.691011e-05 6.386761e-05

[[4]]
[1] 0.0005397094 0.0003348823 0.0004742967 0.0004145926 0.0006228750

[[5]]
[1] 1.466707e-04 1.197978e-04 1.317261e-04 1.901079e-04 1.449448e-04
[6] 2.005737e-04 1.397857e-04 8.481219e-05

[[6]]
[1] 0.0001622765 0.0002212846 0.0002009303 0.0001431074 0.0001781389
[6] 0.0002901167

[[7]]
[1] 0.0002055287 0.0005397094 0.0003428497 0.0003432013 0.0003504051
[6] 0.0002113326 0.0005031250 0.0001878859

[[8]]
[1] 0.0006582134 0.0003012437 0.0003348823 0.0003428497 0.0007193454

[[9]]
[1] 0.0001452881 0.0001919620 0.0002478517 0.0001846853 0.0003608347
[6] 0.0001275280

[[10]]
[1] 8.230456e-05 1.204212e-04 1.185473e-04 1.177461e-04 1.338999e-04

[[11]]
[1] 7.194802e-05 1.204212e-04 7.412539e-05 8.957108e-05 5.200876e-05
[6] 6.530843e-05 8.333031e-05

[[12]]
[1] 0.0002120327 0.0003601503 0.0003033661 0.0002204848 0.0002299417

[[13]]
[1] 0.0004566217 0.0004742967 0.0003432013 0.0007193454 0.0005352046

[[14]]
[1] 0.0003439200 0.0004723701 0.0002181006 0.0001852359 0.0003556913

[[15]]
[1] 0.0002167536 0.0004178016 0.0005004725 0.0002059056 0.0002024628
[6] 0.0002988328 0.0002534194

[[16]]
[1] 0.0003080119 0.0004178016 0.0001666057 0.0003222415 0.0002506523

[[17]]
[1] 0.0001622765 0.0004355978 0.0001468778 0.0001493430 0.0002022661
[6] 0.0001455745 0.0002525101 0.0003209334

[[18]]
[1] 0.0002757322 0.0004145926 0.0005352046 0.0005004725 0.0003077165
[6] 0.0003335152

[[19]]
[1] 0.0001666057 0.0002462888 0.0001860044 0.0001509068 0.0001330087
[6] 0.0001378191 0.0002092546

[[20]]
[1] 0.0003371576 0.0003222415 0.0002462888 0.0001834292 0.0002732088

[[21]]
[1] 8.969997e-05 1.203769e-04 1.245294e-04 9.569804e-05 4.958860e-05

[[22]]
[1] 0.0002059056 0.0002506523 0.0001860044 0.0001834292 0.0002152303
[6] 0.0001971194 0.0001095917

[[23]]
[1] 2.053579e-04 1.119769e-04 1.692192e-04 6.579843e-05 1.036058e-04

[[24]]
[1] 0.0002120327 0.0002024628 0.0003529966 0.0002347366 0.0001982741
[6] 0.0001621175

[[25]]
[1] 0.0002806965 0.0003703229 0.0001509068 0.0002732088 0.0001935337
[6] 0.0001208318

[[26]]
[1] 0.0004723701 0.0004355978 0.0001754699 0.0003013611

[[27]]
[1] 0.0001466707 0.0002212846 0.0002022599 0.0003179325 0.0001494025

[[28]]
[1] 0.0006228750 0.0003504051 0.0003601503 0.0003077165 0.0003330968
[6] 0.0002241661

[[29]]
[1] 2.193608e-04 2.181006e-04 1.935337e-04 2.480081e-04 1.269610e-04
[6] 1.731795e-04 8.705329e-05

[[30]]
[1] 0.0001383976 0.0001197978 0.0001852359 0.0001468778 0.0001754699
[6] 0.0002480081 0.0002134931 0.0001692547 0.0001150417

[[31]]
[1] 0.0003033661 0.0002988328 0.0003335152 0.0003529966 0.0003330968

[[32]]
[1] 1.452881e-04 7.412539e-05 1.648225e-04 1.385556e-04 1.384360e-04
[6] 9.877756e-05

[[33]]
[1] 0.0002113326 0.0001919620 0.0002204848 0.0002241661 0.0004631083
[6] 0.0001381990

[[34]]
[1] 0.0002009303 0.0002478517 0.0001493430 0.0001648225 0.0002087434
[6] 0.0001252900

[[35]]
[1] 2.534194e-04 8.969997e-05 2.152303e-04 2.347366e-04 1.338459e-04
[6] 1.190158e-04

[[36]]
[1] 1.317261e-04 1.741388e-04 1.477787e-04 9.360890e-05 1.023839e-04
[6] 4.522313e-05

[[37]]
[1] 0.0002982074 0.0005031250 0.0003556913 0.0002022661 0.0003013611
[6] 0.0001760696

[[38]]
[1] 0.0001901079 0.0001431074 0.0001455745 0.0002022599 0.0002134931
[6] 0.0001969405

[[39]]
[1] 0.0001878859 0.0001846853 0.0002525101 0.0004631083 0.0002087434
[6] 0.0001760696

[[40]]
[1] 0.0001330087 0.0001971194 0.0002053579 0.0001396487 0.0001509543

[[41]]
[1] 0.0001449448 0.0001269610 0.0001692547 0.0001741388 0.0001155726
[6] 0.0001062678

[[42]]
[1] 2.005737e-04 1.477787e-04 1.006357e-04 5.914874e-05

[[43]]
[1] 0.0001397857 0.0001185473 0.0003179325 0.0001503042 0.0001120205

[[44]]
[1] 1.781389e-04 1.177461e-04 8.957108e-05 1.494025e-04 1.385556e-04
[6] 1.252900e-04 1.503042e-04

[[45]]
[1] 0.0002901167 0.0003209334 0.0001969405

[[46]]
[1] 7.691011e-05 8.481219e-05 1.338999e-04 1.006357e-04 1.120205e-04
[6] 7.834800e-05

[[47]]
[1] 3.608347e-04 1.384360e-04 8.847607e-05 7.825942e-05 1.380165e-04

[[48]]
[1] 1.378191e-04 1.119769e-04 1.396487e-04 1.390484e-04 5.812114e-05
[6] 9.420908e-05

[[49]]
[1] 0.0001203769 0.0001982741 0.0001338459 0.0001460302 0.0001218403

[[50]]
[1] 1.245294e-04 1.095917e-04 1.692192e-04 1.190158e-04 1.509543e-04
[6] 4.881437e-05 7.827893e-05

[[51]]
[1] 8.847607e-05 4.260505e-05 9.775096e-05 7.211651e-05 6.976002e-05

[[52]]
[1] 5.200876e-05 4.260505e-05 6.461671e-05 1.208164e-04

[[53]]
[1] 6.530843e-05 9.877756e-05 7.825942e-05 9.775096e-05 6.461671e-05
[6] 1.098016e-04

[[54]]
[1] 1.275280e-04 2.299417e-04 1.621175e-04 1.381990e-04 1.380165e-04
[6] 1.460302e-04 7.211651e-05 8.749710e-05

[[55]]
[1] 9.569804e-05 1.218403e-04 6.976002e-05 8.749710e-05

[[56]]
[1] 8.333031e-05 1.208164e-04 1.098016e-04

[[57]]
[1] 0.0001731795 0.0001150417 0.0001155726 0.0001121332 0.0000764271
[6] 0.0000755279 0.0001320269

[[58]]
[1] 2.092546e-04 1.208318e-04 8.705329e-05 1.390484e-04 1.121332e-04
[6] 1.356813e-04 6.810787e-05

[[59]]
[1] 7.642710e-05 1.356813e-04 1.153320e-04 5.588948e-05 1.070876e-04

[[60]]
[1] 7.552790e-05 1.153320e-04 8.048614e-05 9.201600e-05 7.698649e-05

[[61]]
[1] 5.588948e-05 8.048614e-05 8.676092e-05 7.105006e-05 5.108714e-05

[[62]]
[1] 9.360890e-05 1.062678e-04 1.320269e-04 9.201600e-05 1.156307e-04
[6] 6.087272e-05

[[63]]
[1] 1.023839e-04 1.156307e-04 5.287764e-05 4.047452e-05 6.619029e-05
[6] 3.620195e-05 9.994772e-05

[[64]]
[1] 5.287764e-05 8.616137e-05 5.274538e-05 6.005288e-05

[[65]]
[1] 4.047452e-05 8.616137e-05 5.965942e-05 1.524056e-04

[[66]]
[1] 5.274538e-05 5.965942e-05

[[67]]
[1] 7.698649e-05 8.676092e-05 6.087272e-05 6.619029e-05 7.655740e-05

[[68]]
[1] 6.386761e-05 4.522313e-05 5.914874e-05 7.834800e-05 3.620195e-05
[6] 1.524056e-04

[[69]]
[1] 9.994772e-05 6.005288e-05 7.655740e-05

[[70]]
[1] 4.117989e-05 5.885227e-05 6.155251e-05 4.225974e-05

[[71]]
[1] 4.117989e-05 5.953357e-05 4.110606e-05

[[72]]
[1] 5.885227e-05 5.899804e-05 4.000195e-05 8.692110e-05 8.457300e-05

[[73]]
[1] 6.155251e-05 5.953357e-05 5.899804e-05 6.741263e-05

[[74]]
[1] 7.105006e-05 4.110606e-05 4.000195e-05 6.741263e-05 3.789103e-05

[[75]]
[1] 6.579843e-05 5.812114e-05 4.225974e-05 8.692110e-05 7.172077e-05
[6] 1.056880e-04 5.465069e-05

[[76]]
[1] 9.420908e-05 6.810787e-05 1.070876e-04 5.108714e-05 8.457300e-05
[6] 3.789103e-05 7.172077e-05

[[77]]
[1] 4.958860e-05 4.881437e-05 7.004105e-05 6.324110e-05

[[78]]
[1] 1.036058e-04 7.827893e-05 1.056880e-04 7.004105e-05 5.420721e-05

[[79]]
[1] 5.465069e-05 6.324110e-05 5.420721e-05
rswm_q <- nb2listw(wm_q, style="W", zero.policy = TRUE)
rswm_q
Characteristics of weights list object:
Neighbour list object:
Number of regions: 79 
Number of nonzero links: 438 
Percentage nonzero weights: 7.018106 
Average number of links: 5.544304 

Weights style: W 
Weights constants summary:
   n   nn S0      S1       S2
W 79 6241 79 29.8143 321.0615

Setting the argument zero.policy to TRUE allows for lists of non-neighbors. This should be used with caution as users may not be aware of missing neighbors in their data however setting zero,policy to FALSE would return an error.

The code chunk below is implemented to check the weights of the first polygons eight neighbors type:

rswm_q$weights[10]
[[1]]
[1] 0.2 0.2 0.2 0.2 0.2

Using the same method, we derive a row standardized distance weight matrix by using the code chunk below.

rswm_ids <- nb2listw(wm_q, glist=ids, style="B", zero.policy=TRUE)
rswm_ids
Characteristics of weights list object:
Neighbour list object:
Number of regions: 79 
Number of nonzero links: 438 
Percentage nonzero weights: 7.018106 
Average number of links: 5.544304 

Weights style: B 
Weights constants summary:
   n   nn         S0           S1           S2
B 79 6241 0.07702966 4.057545e-05 0.0004441685
acc.lag <- lag.listw(rswm_q, boundary_with_accident_count$accident_count)
acc.lag
 [1]   3.375000  42.750000 440.750000  10.800000 141.000000 115.333333
 [7]  12.500000  10.600000 222.500000 400.600000 351.714286 123.000000
[13]  10.800000  39.600000  30.714286  90.400000  58.375000   5.166667
[19] 162.428571  94.400000 239.600000 144.857143 299.600000 136.333333
[25]  84.333333  73.500000 206.400000  41.500000  72.142857  57.222222
[31]  40.800000 350.000000 116.333333 163.333333  76.333333 203.333333
[37]  27.833333  60.166667  53.833333 258.000000 119.166667 240.250000
[43] 157.400000 311.428571  34.333333 241.000000 366.800000 190.666667
[49] 212.000000 234.857143 324.200000 540.500000 444.500000  86.875000
[55] 261.750000 626.333333 112.571429 223.857143 115.200000 124.600000
[61] 120.200000 120.000000 290.428571 149.750000 348.000000 523.000000
[67] 135.800000 165.500000 291.000000 121.500000 125.333333 140.600000
[73] 133.250000  67.600000 190.285714 206.000000 138.250000 262.400000
[79] 390.666667
nb1 <- wm_q[[1]]
nb1 <- boundary_with_accident_count$accident_count[nb1]
nb1
[1]  0  0  0  2  0  1  1 23
lag.list <- list(boundary_with_accident_count$ADM2_EN.x, lag.listw(rswm_q, boundary_with_accident_count$accident_count))
lag.res <- as.data.frame(lag.list)
colnames(lag.res) <- c("ADM2_EN.x", "lag Accident Count")
boundary_with_accident_count <- left_join(boundary_with_accident_count,lag.res)
acc_qtm <- qtm(boundary_with_accident_count, "accident_count")
lag_acc <- qtm(boundary_with_accident_count, "lag Accident Count")
tmap_arrange(acc_qtm, lag_acc, asp=1, ncol=2)

Spatial Window Average

The spatial window average uses row-standardized weights and includes the diagonal element. To do this in R, we need to go back to the neighbors structure and add the diagonal element before assigning weights.

To add the diagonal element to the neighbour list, we use the include.self() function from the spdep package.

wm_qs <- include.self(wm_q)
wm_qs
Neighbour list object:
Number of regions: 79 
Number of nonzero links: 517 
Percentage nonzero weights: 8.283929 
Average number of links: 6.544304 

There is a difference in the key statistics shown above when compared to wm_q. The average number of links, the number of non-zero links as well as percentage of non-zero weights are all higher for wm_qs.

We look at the neighbor list of area [1] using the code chunk below.

wm_qs[[1]]
[1]  1  2  8 13 15 16 18 20 25

This region has 9 neighbors.

We now implement the nb2listw() function in order to obtain weights.

wm_qs <- nb2listw(wm_qs)
wm_qs
Characteristics of weights list object:
Neighbour list object:
Number of regions: 79 
Number of nonzero links: 517 
Percentage nonzero weights: 8.283929 
Average number of links: 6.544304 

Weights style: W 
Weights constants summary:
   n   nn S0       S1       S2
W 79 6241 79 24.99173 318.4378

We now create the lag variable from our weight structure and accident_count variable.

lag_w_avg_acc <- lag.listw(wm_qs, 
                             boundary_with_accident_count$accident_count)
lag_w_avg_acc
 [1]   3.000000  38.000000 364.600000  10.333333 139.333333 100.285714
 [7]  16.111111   8.833333 191.571429 345.833333 423.500000 125.500000
[13]   9.000000  46.666667  27.125000  75.333333  55.000000   4.571429
[19] 198.000000  78.833333 245.166667 127.000000 249.666667 124.714286
[25]  75.571429  60.000000 174.833333  36.714286  64.125000  66.500000
[31]  36.166667 377.714286 106.000000 163.714286  86.000000 184.285714
[37]  28.714286  60.857143  47.000000 268.333333 106.571429 225.000000
[43] 205.333333 320.750000  33.250000 233.142857 319.000000 269.285714
[49] 181.000000 218.000000 312.333333 515.800000 457.571429 132.222222
[55] 228.000000 581.500000 119.625000 202.125000 115.833333 143.500000
[61] 110.000000 130.285714 270.125000 252.000000 355.400000 356.666667
[67] 127.166667 224.571429 233.750000 146.200000 114.500000 134.833333
[73] 112.800000  73.000000 199.875000 187.750000 277.600000 230.333333
[79] 320.500000

We then proceed to convert the lag variable listwobject into a data-frame by using as.data.frame().

lag.list.wm_qs <- list(boundary_with_accident_count$ADM2_EN.x, lag.listw(wm_qs, boundary_with_accident_count$accident_count))
lag_wm_qs.res <- as.data.frame(lag.list.wm_qs)
colnames(lag_wm_qs.res) <- c("ADM2_EN.x", "lag_window_avg acc")

Note: The third command line on the code chunk above renames the field names of lag_wm_q1.res object into accident_count and lag_window_avg acc respectively.

We now append the lag_window_avg acc values onto the boundary_with_accident_count sf data.frame by using left_join() of dplyr package.

boundary_with_accident_count <- left_join(boundary_with_accident_count, lag_wm_qs.res)

To compare the values of lag accident count and Spatial window average, The kable() function of the Knitr package is used to prepare a table.

boundary_with_accident_count %>%
  dplyr::select("ADM2_EN.x", 
         "lag Accident Count", 
         "lag_window_avg acc") %>%
  kable()
ADM2_EN.x lag Accident Count lag_window_avg acc geometry
Phra Nakhon 3.375000 3.000000 MULTIPOLYGON (((662263.2 15…
Dusit 42.750000 38.000000 MULTIPOLYGON (((664304.4 15…
Nong Chok 440.750000 364.600000 MULTIPOLYGON (((706774.6 15…
Bang Rak 10.800000 10.333333 MULTIPOLYGON (((664040.2 15…
Bang Khen 141.000000 139.333333 MULTIPOLYGON (((673966.4 15…
Bang Kapi 115.333333 100.285714 MULTIPOLYGON (((676080.6 15…
Pathum Wan 12.500000 16.111111 MULTIPOLYGON (((664236.5 15…
Pom Prap Sattru Phai 10.600000 8.833333 MULTIPOLYGON (((663880.5 15…
Phra Khanong 222.500000 191.571429 MULTIPOLYGON (((674748.8 15…
Min Buri 400.600000 345.833333 MULTIPOLYGON (((694735.5 15…
Lat Krabang 351.714286 423.500000 MULTIPOLYGON (((694497.3 15…
Yan Nawa 123.000000 125.500000 MULTIPOLYGON (((667818.3 15…
Samphanthawong 10.800000 9.000000 MULTIPOLYGON (((663592.4 15…
Phaya Thai 39.600000 46.666667 MULTIPOLYGON (((667624 1525…
Thon Buri 30.714286 27.125000 MULTIPOLYGON (((661364.9 15…
Bangkok Yai 90.400000 75.333333 MULTIPOLYGON (((660991.6 15…
Huai Khwang 58.375000 55.000000 MULTIPOLYGON (((671695.6 15…
Khlong San 5.166667 4.571429 MULTIPOLYGON (((662113.2 15…
Taling Chan 162.428571 198.000000 MULTIPOLYGON (((654587 1526…
Bangkok Noi 94.400000 78.833333 MULTIPOLYGON (((659654.1 15…
Bang Khun Thian 239.600000 245.166667 MULTIPOLYGON (((656541 1512…
Phasi Charoen 144.857143 127.000000 MULTIPOLYGON (((654370 1519…
Nong Khaem 299.600000 249.666667 MULTIPOLYGON (((647001.3 15…
Rat Burana 136.333333 124.714286 MULTIPOLYGON (((661132.1 15…
Bang Phlat 84.333333 75.571429 MULTIPOLYGON (((663052.9 15…
Din Daeng 73.500000 60.000000 MULTIPOLYGON (((670238.2 15…
Bueng Kum 206.400000 174.833333 MULTIPOLYGON (((678184.5 15…
Sathon 41.500000 36.714286 MULTIPOLYGON (((667917.7 15…
Bang Sue 72.142857 64.125000 MULTIPOLYGON (((666275.4 15…
Chatuchak 57.222222 66.500000 MULTIPOLYGON (((671471.4 15…
Bang Kho Laem 40.800000 36.166667 MULTIPOLYGON (((664335.2 15…
Prawet 350.000000 377.714286 MULTIPOLYGON (((680695.6 15…
Khlong Toei 116.333333 106.000000 MULTIPOLYGON (((673075.4 15…
Suan Luang 163.333333 163.714286 MULTIPOLYGON (((677751.8 15…
Chom Thong 76.333333 86.000000 MULTIPOLYGON (((658696.5 15…
Don Mueang 203.333333 184.285714 MULTIPOLYGON (((674339.8 15…
Ratchathewi 27.833333 28.714286 MULTIPOLYGON (((667199.4 15…
Lat Phrao 60.166667 60.857143 MULTIPOLYGON (((673842.9 15…
Vadhana 53.833333 47.000000 MULTIPOLYGON (((668704.8 15…
Bang Khae 258.000000 268.333333 MULTIPOLYGON (((647693 1520…
Lak Si 119.166667 106.571429 MULTIPOLYGON (((671045.4 15…
Sai Mai 240.250000 225.000000 MULTIPOLYGON (((679686.2 15…
Khan Na Yao 157.400000 205.333333 MULTIPOLYGON (((680806.2 15…
Saphan Sung 311.428571 320.750000 MULTIPOLYGON (((685556.9 15…
Wang Thonglang 34.333333 33.250000 MULTIPOLYGON (((671782.5 15…
Khlong Sam Wa 241.000000 233.142857 MULTIPOLYGON (((693668.9 15…
Bang Na 366.800000 319.000000 MULTIPOLYGON (((675501.8 15…
Thawi Watthana 190.666667 269.285714 MULTIPOLYGON (((650687.8 15…
Thung Khru 212.000000 181.000000 MULTIPOLYGON (((660699.8 15…
Bang Bon 234.857143 218.000000 MULTIPOLYGON (((656343.6 15…
Mueang Samut Prakan 324.200000 312.333333 MULTIPOLYGON (((673201.8 15…
Bang Bo 540.500000 515.800000 MULTIPOLYGON (((712294.1 15…
Bang Phli 444.500000 457.571429 MULTIPOLYGON (((687139.8 15…
Phra Pradaeng 86.875000 132.222222 MULTIPOLYGON (((670827.4 15…
Phra Samut Chedi 261.750000 228.000000 MULTIPOLYGON (((669191.5 15…
Bang Sao Thong 626.333333 581.500000 MULTIPOLYGON (((695481.3 15…
Mueang Nonthaburi 112.571429 119.625000 MULTIPOLYGON (((662112.2 15…
Bang Kruai 223.857143 202.125000 MULTIPOLYGON (((654095.9 15…
Bang Yai 115.200000 115.833333 MULTIPOLYGON (((649983.7 15…
Bang Bua Thong 124.600000 143.500000 MULTIPOLYGON (((649993.4 15…
Sai Noi 120.200000 110.000000 MULTIPOLYGON (((644817.9 15…
Pak Kret 120.000000 130.285714 MULTIPOLYGON (((652378.8 15…
Mueang Pathum Thani 290.428571 270.125000 MULTIPOLYGON (((672162.5 15…
Khlong Luang 149.750000 252.000000 MULTIPOLYGON (((689473.3 15…
Thanyaburi 348.000000 355.400000 MULTIPOLYGON (((706757.7 15…
Nong Suea 523.000000 356.666667 MULTIPOLYGON (((704086 1575…
Lat Lum Kaeo 135.800000 127.166667 MULTIPOLYGON (((650538.8 15…
Lam Luk Ka 165.500000 224.571429 MULTIPOLYGON (((706764.9 15…
Sam Khok 291.000000 233.750000 MULTIPOLYGON (((665864.3 15…
Mueang Nakhon Pathom 121.500000 146.200000 MULTIPOLYGON (((602747 1541…
Kamphaeng Saen 125.333333 114.500000 MULTIPOLYGON (((612428.1 15…
Nakhon Chai Si 140.600000 134.833333 MULTIPOLYGON (((627397.1 15…
Don Tum 133.250000 112.800000 MULTIPOLYGON (((620292.6 15…
Bang Len 67.600000 73.000000 MULTIPOLYGON (((631987.6 15…
Sam Phran 190.285714 199.875000 MULTIPOLYGON (((636176.3 15…
Phutthamonthon 206.000000 187.750000 MULTIPOLYGON (((637713.4 15…
Mueang Samut Sakhon 138.250000 277.600000 MULTIPOLYGON (((646615.4 15…
Krathum Baen 262.400000 230.333333 MULTIPOLYGON (((641549.1 15…
Ban Phaeo 390.666667 320.500000 MULTIPOLYGON (((625054.6 15…

We now plot the lag accident count and w_ave_acc maps next to each other for comparison using the qtm() function of the tmap package.

w_avg_acc <- qtm(boundary_with_accident_count, "lag_window_avg acc")
tmap_arrange(lag_acc, w_avg_acc, asp=1, ncol=2)

equal <- tm_shape(boundary_with_accident_count) +
  tm_fill("accident_count",
          n = 5,
          style = "equal") +
  tm_borders(alpha = 0.5) +
  tm_layout(main.title = "Equal interval classification")

quantile <- tm_shape(boundary_with_accident_count) +
  tm_fill("accident_count",
          n = 5,
          style = "quantile") +
  tm_borders(alpha = 0.5) +
  tm_layout(main.title = "Equal quantile classification")

tmap_arrange(equal, 
             quantile, 
             asp=1, 
             ncol=2)

Spatial Autocorrelation: Morans I test.

The hypotheses for the test are as follows:

  • H0: Regions with similar number of accidents are randomly distributed.

  • H1: Regions with similar number of accidents are not randomly distributed and exhibit spatial clustering.

moran.test(boundary_with_accident_count$accident_count, 
           listw=rswm_q, 
           zero.policy = TRUE, 
           na.action=na.omit)

    Moran I test under randomisation

data:  boundary_with_accident_count$accident_count  
weights: rswm_q    

Moran I statistic standard deviate = 3.7964, p-value = 7.34e-05
alternative hypothesis: greater
sample estimates:
Moran I statistic       Expectation          Variance 
      0.235764728      -0.012820513       0.004287482 

From the output above, we can infer the following:

  • The p-value (7.34e-05)<0.05, indicating that the observed spatial autocorrelation is statistically significant.

  • Moran’s I statistic: The observed value of 0.236 indicates positive spatial autocorrelation, meaning that regions with similar number of accidents are more likely to be located near each other.

Since Moran’s I Statistic is significantly greater than what we would expect in a randomly distributed region. There is significant evidence to reject H0 and conclude that there is indeed spatial clustering with regards to Accidents in the Bangkok Metropolitan Region.

Monte Carlo Moran’s I

We now implement the moran.mc() function of the spdep package. In this scenario, we will run 1000 simulations.

bperm= moran.mc(boundary_with_accident_count$accident_count, 
                listw=rswm_q, 
                nsim=999, 
                zero.policy = TRUE, 
                na.action=na.omit)
bperm

    Monte-Carlo simulation of Moran I

data:  boundary_with_accident_count$accident_count 
weights: rswm_q  
number of simulations + 1: 1000 

statistic = 0.23576, observed rank = 1000, p-value = 0.001
alternative hypothesis: greater

Based on the above output, p-value (0.001)<0.05, thus we can reject the null hypothesis at a 5% significance level and conclude that there is indeed spatial clustering.

Visualizing Monte Carlo Moran’s I

We can visualize the test statistics obtained from the simulation above by implementing the hist() and abline() functions of R graphics.

We first calculate the mean and variance, and obtain the summary statistics.

mean(bperm$res[1:999])
[1] -0.01073838
var(bperm$res[1:999])
[1] 0.00437831
summary(bperm$res[1:999])
    Min.  1st Qu.   Median     Mean  3rd Qu.     Max. 
-0.20513 -0.05612 -0.01518 -0.01074  0.03086  0.23281 
hist(bperm$res, 
     freq=TRUE, 
     breaks=20, 
     xlab="Simulated Moran's I")
abline(v=0, 
       col="red") 

From the above, we can infer that over half of all simulations indicate a negative value for Moran’s I statistic. Generally, a negative value indicates that dissimilar regions are located next to each other. (i.e: regions with dissimilar number of Accidents are located next to each other)

We can also make use of the ggplot2 R package to produce a plot.

data <- data.frame(simulated_moran = bperm$res)

ggplot(data, aes(x = simulated_moran)) +
  geom_histogram(binwidth = (max(data$simulated_moran) - min(data$simulated_moran)) / 20, 
                 fill = "lightblue", color = "black") +
  geom_vline(xintercept = 0, color = "red", linetype = "dashed") +
  labs(x = "Simulated Moran's I", 
       y = "Frequency",
       title = "Histogram of Simulated Moran's I") +
  theme_minimal()

Local Morans I

We implement the localmoran() function of spdep compute the local Moran’s I statistic. This function helps us compute li values, given a set of zi values and a listw object providing neighbor weighting information for the polygon associated with the zi values.

We compute local Moran’s I of accident_count at the district level.

fips <- order(boundary_with_accident_count$accident_count)
localMI <- localmoran(boundary_with_accident_count$accident_count, rswm_q)
head(localMI)
           Ii          E.Ii      Var.Ii       Z.Ii Pr(z != E(Ii))
1  0.60429563 -0.0079097813 0.070446604  2.3065726    0.021078658
2  0.45651029 -0.0079097813 0.070446604  1.7497699    0.080158019
3 -0.65867321 -0.0031893365 0.060342196 -2.6684032    0.007621273
4  0.54837408 -0.0071586128 0.106462820  1.7025922    0.088644413
5  0.02048823 -0.0004311934 0.003869271  0.3363063    0.736639872
6  0.17288609 -0.0069766753 0.085295392  0.6158550    0.537990224

localmoran() function returns a matrix of values whose columns are:

  • Ii: the local Moran’s I statistics

  • E.Ii: the expectation of local moran statistic under the randomisation hypothesis

  • Var.Ii: the variance of local moran statistic under the randomisation hypothesis

  • Z.Ii:the standard deviate of local moran statistic

  • Pr(): the p-value of local moran statistic

We now use the printCoefmat() to display the content of the local Moran matrix that we created above.

printCoefmat(data.frame(
  localMI[fips,], 
  row.names=boundary_with_accident_count$ADM2_EN.x[fips]),
  check.names=FALSE)
                              Ii        E.Ii      Var.Ii        Z.Ii
Phra Nakhon           6.0430e-01 -7.9098e-03  7.0447e-02  2.3066e+00
Dusit                 4.5651e-01 -7.9098e-03  7.0447e-02  1.7498e+00
Pom Prap Sattru Phai  5.7718e-01 -7.9098e-03  1.1755e-01  1.7065e+00
Samphanthawong        5.7643e-01 -7.9098e-03  1.1755e-01  1.7044e+00
Bangkok Yai           2.7767e-01 -7.9098e-03  1.1755e-01  8.3295e-01
Nong Khaem           -5.0752e-01 -7.9098e-03  1.1755e-01 -1.4572e+00
Khlong San            5.9394e-01 -7.8138e-03  9.5450e-02  1.9477e+00
Bangkok Noi           2.6106e-01 -7.8138e-03  1.1613e-01  7.8898e-01
Thon Buri             4.9558e-01 -7.7185e-03  7.9701e-02  1.7828e+00
Phasi Charoen         7.2382e-02 -7.7185e-03  7.9701e-02  2.8373e-01
Phra Khanong         -2.1018e-01 -7.3429e-03  8.9740e-02 -6.7710e-01
Din Daeng             3.2865e-01 -7.3429e-03  1.3835e-01  9.0331e-01
Vadhana               3.9977e-01 -7.3429e-03  8.9740e-02  1.3590e+00
Bang Rak              5.4837e-01 -7.1586e-03  1.0646e-01  1.7026e+00
Sathon                4.3876e-01 -7.1586e-03  8.7504e-02  1.5074e+00
Bang Sue              3.2934e-01 -7.1586e-03  7.3961e-02  1.2373e+00
Bang Kapi             1.7289e-01 -6.9767e-03  8.5295e-02  6.1586e-01
Bang Kho Laem         4.2715e-01 -6.7082e-03  9.9809e-02  1.3733e+00
Bueng Kum            -1.4140e-01 -6.3583e-03  9.4637e-02 -4.3898e-01
Bang Phlat            2.5840e-01 -5.8512e-03  7.1616e-02  9.8744e-01
Nong Suea            -1.1495e+00 -5.7687e-03  2.2361e-01 -2.4187e+00
Thung Khru           -1.5046e-01 -5.6055e-03  8.3495e-02 -5.0131e-01
Huai Khwang           3.3009e-01 -5.4446e-03  4.8612e-02  1.5219e+00
Wang Thonglang        3.9902e-01 -5.2861e-03  1.3487e-01  1.1009e+00
Lak Si                1.3769e-01 -5.2077e-03  6.3782e-02  5.6584e-01
Don Tum               9.4804e-02 -5.2077e-03  9.8330e-02  3.1894e-01
Ratchathewi           4.0649e-01 -4.9761e-03  6.0959e-02  1.6665e+00
Khlong Toei           1.3206e-01 -4.2420e-03  5.2005e-02  5.9770e-01
Pathum Wan            4.1399e-01 -4.1719e-03  3.7296e-02  2.1653e+00
Bang Kruai           -1.5533e-01 -3.8297e-03  3.9701e-02 -7.6037e-01
Rat Burana            7.0045e-02 -3.5022e-03  4.2967e-02  3.5481e-01
Sai Noi               1.0630e-01 -3.2507e-03  4.8535e-02  4.9727e-01
Nong Chok            -6.5867e-01 -3.1893e-03  6.0342e-02 -2.6684e+00
Phutthamonthon       -9.9194e-02 -3.1893e-03  3.3083e-02 -5.2782e-01
Sam Khok             -2.9599e-01 -3.0683e-03  7.8458e-02 -1.0458e+00
Lat Phrao             2.3647e-01 -2.8911e-03  3.5491e-02  1.2706e+00
Don Mueang           -8.3944e-02 -2.6075e-03  3.2019e-02 -4.5455e-01
Krathum Baen         -2.1123e-01 -2.6075e-03  3.8957e-02 -1.0570e+00
Min Buri             -4.9826e-01 -2.4982e-03  3.7327e-02 -2.5660e+00
Bang Na              -3.8999e-01 -2.0842e-03  3.1155e-02 -2.1977e+00
Phaya Thai            2.3471e-01 -1.9866e-03  2.9698e-02  1.3735e+00
Kamphaeng Saen        7.3445e-02 -1.9866e-03  5.0854e-02  3.3450e-01
Lat Lum Kaeo          5.2453e-02 -1.8913e-03  2.8277e-02  3.2317e-01
Phra Samut Chedi     -1.5870e-01 -1.4915e-03  2.8267e-02 -9.3503e-01
Bang Bon             -1.0360e-01 -1.2133e-03  1.2611e-02 -9.1175e-01
Bang Len              1.4226e-01 -1.2133e-03  1.8152e-02  1.0649e+00
Nakhon Chai Si        3.1698e-02 -9.9768e-04  1.4930e-02  2.6759e-01
Ban Phaeo            -2.8097e-01 -8.6565e-04  2.2184e-02 -1.8806e+00
Bang Yai              5.0958e-02 -6.0283e-04  9.0244e-03  5.4276e-01
Bang Khen             2.0488e-02 -4.3119e-04  3.8693e-03  3.3631e-01
Mueang Pathum Thani  -1.0470e-01 -3.8742e-04  4.0301e-03 -1.6432e+00
Yan Nawa              2.4924e-02 -2.0371e-04  3.0508e-03  4.5494e-01
Chom Thong            4.0971e-02 -1.2158e-04  1.4967e-03  1.0622e+00
Chatuchak             3.5183e-02 -6.0530e-05  4.7609e-04  1.6152e+00
Sai Mai              -6.5785e-04 -4.2214e-08  8.0124e-07 -7.3488e-01
Suan Luang           -3.8712e-05 -7.6848e-07  9.4613e-06 -1.2336e-02
Mueang Nonthaburi    -5.4655e-03 -6.2488e-06  6.5027e-05 -6.7699e-01
Khlong Sam Wa         3.7824e-02 -1.3683e-04  1.6844e-03  9.2494e-01
Pak Kret             -2.7988e-02 -2.2332e-04  2.7488e-03 -5.2957e-01
Bang Bua Thong       -6.6869e-02 -1.5866e-03  2.3728e-02 -4.2380e-01
Mueang Nakhon Pathom -7.8933e-02 -1.9026e-03  3.6044e-02 -4.0574e-01
Mueang Samut Prakan   3.2339e-01 -2.2990e-03  3.4358e-02  1.7571e+00
Sam Phran             6.0701e-02 -3.0827e-03  3.1981e-02  3.5667e-01
Bang Khun Thian       1.8656e-01 -3.4537e-03  5.1556e-02  8.3683e-01
Bang Khae             3.3266e-01 -7.0892e-03  1.0544e-01  1.0463e+00
Thanyaburi            9.2497e-01 -1.4248e-02  2.6658e-01  1.8191e+00
Saphan Sung           7.4410e-01 -1.4378e-02  1.4747e-01  1.9751e+00
Bang Bo               2.1695e+00 -1.8681e-02  3.4795e-01  3.7095e+00
Khan Na Yao          -4.4722e-02 -2.3052e-02  3.3734e-01 -3.7310e-02
Taling Chan          -1.2591e-02 -2.3382e-02  2.3763e-01  2.2136e-02
Bang Sao Thong        2.9810e+00 -2.3382e-02  5.8570e-01  3.9257e+00
Phra Pradaeng        -5.8509e-01 -3.1998e-02  2.7807e-01 -1.0489e+00
Bang Phli             2.3769e+00 -4.0427e-02  4.7760e-01  3.4978e+00
Prawet                1.6089e+00 -4.2186e-02  4.9747e-01  2.3410e+00
Lam Luk Ka            1.0605e-02 -5.0323e-02  5.8839e-01  7.9431e-02
Khlong Luang         -1.6589e-01 -7.2197e-02  1.2714e+00 -8.3095e-02
Thawi Watthana        3.4609e-01 -9.7330e-02  1.0817e+00  4.2635e-01
Mueang Samut Sakhon  -4.0011e-01 -1.3165e-01  2.1698e+00 -1.8225e-01
Lat Krabang           3.2578e+00 -1.6980e-01  1.4670e+00  2.8299e+00
                     Pr.z....E.Ii..
Phra Nakhon                  0.0211
Dusit                        0.0802
Pom Prap Sattru Phai         0.0879
Samphanthawong               0.0883
Bangkok Yai                  0.4049
Nong Khaem                   0.1451
Khlong San                   0.0514
Bangkok Noi                  0.4301
Thon Buri                    0.0746
Phasi Charoen                0.7766
Phra Khanong                 0.4983
Din Daeng                    0.3664
Vadhana                      0.1741
Bang Rak                     0.0886
Sathon                       0.1317
Bang Sue                     0.2160
Bang Kapi                    0.5380
Bang Kho Laem                0.1697
Bueng Kum                    0.6607
Bang Phlat                   0.3234
Nong Suea                    0.0156
Thung Khru                   0.6162
Huai Khwang                  0.1280
Wang Thonglang               0.2709
Lak Si                       0.5715
Don Tum                      0.7498
Ratchathewi                  0.0956
Khlong Toei                  0.5500
Pathum Wan                   0.0304
Bang Kruai                   0.4470
Rat Burana                   0.7227
Sai Noi                      0.6190
Nong Chok                    0.0076
Phutthamonthon               0.5976
Sam Khok                     0.2957
Lat Phrao                    0.2039
Don Mueang                   0.6494
Krathum Baen                 0.2905
Min Buri                     0.0103
Bang Na                      0.0280
Phaya Thai                   0.1696
Kamphaeng Saen               0.7380
Lat Lum Kaeo                 0.7466
Phra Samut Chedi             0.3498
Bang Bon                     0.3619
Bang Len                     0.2869
Nakhon Chai Si               0.7890
Ban Phaeo                    0.0600
Bang Yai                     0.5873
Bang Khen                    0.7366
Mueang Pathum Thani          0.1003
Yan Nawa                     0.6492
Chom Thong                   0.2882
Chatuchak                    0.1063
Sai Mai                      0.4624
Suan Luang                   0.9902
Mueang Nonthaburi            0.4984
Khlong Sam Wa                0.3550
Pak Kret                     0.5964
Bang Bua Thong               0.6717
Mueang Nakhon Pathom         0.6849
Mueang Samut Prakan          0.0789
Sam Phran                    0.7213
Bang Khun Thian              0.4027
Bang Khae                    0.2954
Thanyaburi                   0.0689
Saphan Sung                  0.0483
Bang Bo                      0.0002
Khan Na Yao                  0.9702
Taling Chan                  0.9823
Bang Sao Thong               0.0001
Phra Pradaeng                0.2942
Bang Phli                    0.0005
Prawet                       0.0192
Lam Luk Ka                   0.9367
Khlong Luang                 0.9338
Thawi Watthana               0.6698
Mueang Samut Sakhon          0.8554
Lat Krabang                  0.0047

Mapping the local Moran’s I

Before we map the local Moran’s I map, it is wise to append the local Moran’s data-frame (localMI) onto our SpatialPolygonDataFrame.

bmr.localMI <- cbind(boundary_with_accident_count,localMI) %>%
  rename(Pr.Ii = Pr.z....E.Ii..)

Mapping Local Moran’s I values

We now make use of the tmap package and its choropleth mapping functions to plot the local Moran’s I values.

tm_shape(bmr.localMI) +
  tm_fill(col = "Ii", 
          style = "pretty",
          palette = "RdBu",
          title = "local moran statistics") +
  tm_borders(alpha = 0.5)

Mapping Local Moran’s I p-values

The Choropleth reveals the presence of both positive, as well as negative I values. This indicates that there are varying levels of spatial autocorrelation, however, we must examine the p-values for these I values to check for statistical significance.

We use the tmap package to draw a choropleth map of Moran’s I p-values.

tm_shape(bmr.localMI) +
  tm_fill(col = "Pr.Ii", 
          breaks=c(-Inf, 0.001, 0.01, 0.05, 0.1, Inf),
          palette="-Blues", 
          title = "local Moran's I p-values") +
  tm_borders(alpha = 0.5)

Mapping both local Moran’s I values and p-values

In the interest of easier analysis and interpretation, we plot the two maps next to each other.

localMI.map <- tm_shape(bmr.localMI) +
  tm_fill(col = "Ii", 
          style = "pretty", 
          title = "local moran statistics") +
  tm_borders(alpha = 0.5)

pvalue.map <- tm_shape(bmr.localMI) +
  tm_fill(col = "Pr.Ii", 
          breaks=c(-Inf, 0.001, 0.01, 0.05, 0.1, Inf),
          palette="-Blues", 
          title = "local Moran's I p-values") +
  tm_borders(alpha = 0.5)

tmap_arrange(localMI.map, pvalue.map, asp=1, ncol=2)

Hot and Cold Spot Areas

Getis and Ord’s G-Statistics

An alternative spatial statistic used to detect spatial anomalies is the Getis-Ord G-statistic (Getis and Ord, 1972; Ord and Getis, 1995). This method examines spatial relationships within a defined proximity to identify clusters of high or low values. Statistically significant hotspots are areas where high values are spatially clustered, meaning that not only do these areas have high values, but their neighboring areas also exhibit similarly high values.

The analysis involves three key steps:

  1. Deriving the spatial weight matrix: This defines the spatial relationships between areas, specifying which locations are considered neighbors based on proximity.

  2. Computing the Gi statistic: This step calculates the G-statistic for each location, identifying regions where values are significantly higher or lower than expected.

  3. Mapping the Gi statistics: The results are visualized to reveal spatial patterns of high-value clusters (hotspots) and low-value clusters (cold spots).

This approach is useful for identifying localized patterns of spatial clustering and detecting significant anomalies in the data.

Deriving Distance Based Weight Matrix

We start by defining a new set of neighbors. While the spatial autocorrelation considered units which shared borders, for Getis-Ord, we will define the neighbors based on distance.

There are two types of distance-based proximity matrices:

  1. Fixed Distance Weight Matrix

  2. Adaptive Distance Weight Matrix

Before creating our connectivity graph, we need to assign a point to each polygon. This requires more than simply running st_centroid() on the us.bound spatial object. Specifically, we need to extract the coordinates into a separate data frame. We have already done this earlier and stored them under the name coords.

Mapping functions apply a specific operation to each element of a vector and return a vector of the same length. In our case, the input vector will be the geometry column from us.bound, and the function we’ll apply is st_centroid(). We’ll use the map_dbl variation from the purrr package, which is designed to return numeric (double) values.

To extract the longitude values, we’ll map the st_centroid() function over the geometry column and use double bracket notation [[]] with 1 to access the first element of each centroid, which corresponds to the longitude.

For more detailed information, you can refer to the map documentation here.

Determine the Cut-off Distance

To determine the upper limit for the distance band, we follow these steps:

  1. Find the k-nearest neighbors: Use the knearneigh() function from the spdep package. This function returns a matrix that contains the indices of points corresponding to the k-nearest neighbors for each observation.

  2. Convert to a neighbors list: Take the k-nearest neighbors object returned by knearneigh() and convert it into a neighbors list (class nb) by using the knn2nb() function. This generates a list of integer vectors, where each vector contains the region numbers corresponding to its neighbors.

  3. Calculate neighbor distances: Use the nbdists() function from spdep to calculate the distances between neighbors. The function returns the lengths of neighbor relationship edges in the units of the coordinates (e.g., kilometers if the coordinates are geographic).

  4. Flatten the distance list: The distances returned by nbdists() are stored in a list. Use the unlist() function to remove the list structure and return a single vector of distances.

This process helps identify the upper limit for a distance band by analyzing the distances between neighboring regions.

k1 <- knn2nb(knearneigh(coords))
k1dists <- unlist(nbdists(k1, coords, longlat = FALSE))
summary(k1dists)
   Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
   1390    2805    4986    6259    8476   16797 

From the above output, we can infer that the largest first-nearest neighbor distance is just under 17000M.
Using this as the upper threshold gives certainty that all units will have at least one neighbor.

Computing fixed distance weight matrix

We implement the dnearneigh() function of the spdep package to compute the distance weight matrix.

wm_d62 <- dnearneigh(coords, 0, 17000, longlat = FALSE)
wm_d62
Neighbour list object:
Number of regions: 79 
Number of nonzero links: 1766 
Percentage nonzero weights: 28.29675 
Average number of links: 22.35443 

After this, we implement the nb2listw() function to convert the nb object into spatial weights object.

On average, each region has approximately 22.3neighbors.

wm62_lw <- nb2listw(wm_d62, style = 'B')
summary(wm62_lw)
Characteristics of weights list object:
Neighbour list object:
Number of regions: 79 
Number of nonzero links: 1766 
Percentage nonzero weights: 28.29675 
Average number of links: 22.35443 
Link number distribution:

 1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 19 20 21 22 23 25 26 27 29 31 32 
 3  5  3  6  1  2  1  2  2  1  1  1  1  1  3  1  1  1  2  1  2  1  1  2  2  1 
33 34 35 36 37 38 39 40 41 42 
 1  1  5  1  4  4  8  4  1  2 
3 least connected regions:
66 71 79 with 1 link
2 most connected regions:
14 37 with 42 links

Weights style: B 
Weights constants summary:
   n   nn   S0   S1     S2
B 79 6241 1766 3532 226656

Computing Gi statistics using Fixed Distance

fips <- order(boundary_with_accident_count$accident_count)
gi.fixed <- localG(boundary_with_accident_count$accident_count, wm62_lw)
gi.fixed
 [1] -3.35336397 -3.12912595  2.66840322 -3.40300611 -1.55553377 -1.60535680
 [7] -3.49157140 -3.33512452 -2.30441253  1.39585137  2.02857406 -3.14674976
[13] -3.17369454 -3.11393349 -2.81776564 -2.72683627 -2.88374141 -3.09409303
[19] -3.12869158 -2.97426998 -1.24486361 -2.45871841 -0.73868252 -3.41408938
[25] -2.89311199 -3.10698762 -1.21501813 -3.40300611 -3.97875100 -3.49579305
[31] -3.68769474  0.40369815 -2.86023380 -2.45892382 -2.82195856 -0.92940375
[37] -3.00458192 -2.79839385 -3.02803442 -2.34863826 -2.70055541 -0.22060572
[43] -0.64115983  0.20224677 -3.19200023  1.40767563 -2.13429423 -2.10096499
[49] -2.78620527 -1.47043641  1.55439452  2.25397760  3.05249557 -3.47654632
[55] -0.01782564  4.36180044 -2.68397915 -2.21092597  0.65770388 -0.78671988
[61] -0.20919415 -1.51459191 -0.54373150  0.45951200  2.18029716  1.04197980
[67] -0.32317456  0.39447801  1.04576806 -0.64165535 -0.63894290 -0.13934645
[73] -0.31893930 -0.81293378 -1.00959192  0.67569728 -0.47712106  2.54803258
[79]  3.18220373
attr(,"internals")
               Gi      E(Gi)        V(Gi)       Z(Gi) Pr(z != E(Gi))
 [1,] 0.272139227 0.51282051 0.0051513761 -3.35336397   7.983565e-04
 [2,] 0.288233482 0.51282051 0.0051513761 -3.12912595   1.753271e-03
 [3,] 0.136391769 0.05128205 0.0010173148  2.66840322   7.621273e-03
 [4,] 0.255432270 0.50000000 0.0051650300 -3.40300611   6.664879e-04
 [5,] 0.180171073 0.28205128 0.0042896392 -1.55553377   1.198190e-01
 [6,] 0.333924168 0.44871795 0.0051132094 -1.60535680   1.084153e-01
 [7,] 0.247971563 0.50000000 0.0052102341 -3.49157140   4.801881e-04
 [8,] 0.273448329 0.51282051 0.0051513761 -3.33512452   8.526121e-04
 [9,] 0.296456086 0.46153846 0.0051319328 -2.30441253   2.119950e-02
[10,] 0.241985442 0.16666667 0.0029115761  1.39585137   1.627593e-01
[11,] 0.224129353 0.12820513 0.0022360158  2.02857406   4.250169e-02
[12,] 0.258016812 0.48717949 0.0053035095 -3.14674976   1.650962e-03
[13,] 0.272139227 0.50000000 0.0051547652 -3.17369454   1.505120e-03
[14,] 0.313468692 0.53846154 0.0052205800 -3.11393349   1.846111e-03
[15,] 0.284889094 0.48717949 0.0051539569 -2.81776564   4.835909e-03
[16,] 0.278838749 0.47435897 0.0051412089 -2.72683627   6.394476e-03
[17,] 0.292251891 0.50000000 0.0051899304 -2.88374141   3.929813e-03
[18,] 0.290720062 0.51282051 0.0051526678 -3.09409303   1.974156e-03
[19,] 0.183188452 0.41025641 0.0052672775 -3.12869158   1.755865e-03
[20,] 0.261070466 0.47435897 0.0051424981 -2.97426998   2.936866e-03
[21,] 0.109258240 0.17948718 0.0031826485 -1.24486361   2.131819e-01
[22,] 0.260782502 0.43589744 0.0050725786 -2.45871841   1.394339e-02
[23,] 0.198059449 0.24358974 0.0037991399 -0.73868252   4.600998e-01
[24,] 0.203309875 0.44871795 0.0051668746 -3.41408938   6.399558e-04
[25,] 0.278947774 0.48717949 0.0051803995 -2.89311199   3.814453e-03
[26,] 0.302696456 0.52564103 0.0051489035 -3.10698762   1.890043e-03
[27,] 0.287300486 0.37179487 0.0048360434 -1.21501813   2.243592e-01
[28,] 0.255432270 0.50000000 0.0051650300 -3.40300611   6.664879e-04
[29,] 0.214054554 0.50000000 0.0051650300 -3.97875100   6.927825e-05
[30,] 0.219772515 0.47435897 0.0053037027 -3.49579305   4.726551e-04
[31,] 0.222076621 0.48717949 0.0051679573 -3.68769474   2.262949e-04
[32,] 0.348255907 0.32051282 0.0047227618  0.40369815   6.864347e-01
[33,] 0.268196569 0.47435897 0.0051953627 -2.86023380   4.233288e-03
[34,] 0.270124805 0.44871795 0.0052752059 -2.45892382   1.393542e-02
[35,] 0.244120853 0.44871795 0.0052565120 -2.82195856   4.773134e-03
[36,] 0.139284608 0.19230769 0.0032547762 -0.92940375   3.526799e-01
[37,] 0.322498456 0.53846154 0.0051664346 -3.00458192   2.659461e-03
[38,] 0.247349276 0.44871795 0.0051780488 -2.79839385   5.135745e-03
[39,] 0.282434515 0.50000000 0.0051624800 -3.02803442   2.461500e-03
[40,] 0.181588505 0.34615385 0.0049095816 -2.34863826   1.884220e-02
[41,] 0.138865303 0.32051282 0.0045243141 -2.70055541   6.922381e-03
[42,] 0.179613165 0.19230769 0.0033113077 -0.22060572   8.253994e-01
[43,] 0.251734311 0.29487179 0.0045266509 -0.64115983   5.214188e-01
[44,] 0.295476190 0.28205128 0.0044061520  0.20224677   8.397238e-01
[45,] 0.269990738 0.50000000 0.0051923603 -3.19200023   1.412912e-03
[46,] 0.228125000 0.15384615 0.0027843582  1.40767563   1.592271e-01
[47,] 0.246087091 0.39743590 0.0050286269 -2.13429423   3.281870e-02
[48,] 0.123152307 0.25641026 0.0040229869 -2.10096499   3.564404e-02
[49,] 0.144135802 0.33333333 0.0046111018 -2.78620527   5.332909e-03
[50,] 0.174530498 0.26923077 0.0041477249 -1.47043641   1.414436e-01
[51,] 0.137752297 0.07692308 0.0015314471  1.55439452   1.200903e-01
[52,] 0.078208290 0.02564103 0.0005439157  2.25397760   2.419758e-02
[53,] 0.259036145 0.11538462 0.0022146771  3.05249557   2.269471e-03
[54,] 0.169802258 0.42307692 0.0053074689 -3.47654632   5.079165e-04
[55,] 0.114558287 0.11538462 0.0021488926 -0.01782564   9.857780e-01
[56,] 0.193237100 0.05128205 0.0010591808  4.36180044   1.289965e-05
[57,] 0.205586331 0.39743590 0.0051093231 -2.68397915   7.275164e-03
[58,] 0.217455164 0.37179487 0.0048731182 -2.21092597   2.704096e-02
[59,] 0.174321909 0.14102564 0.0025628920  0.65770388   5.107284e-01
[60,] 0.067540006 0.10256410 0.0019819543 -0.78671988   4.314459e-01
[61,] 0.032644852 0.03846154 0.0007731295 -0.20919415   8.342967e-01
[62,] 0.104971080 0.19230769 0.0033250748 -1.51459191   1.298758e-01
[63,] 0.078550319 0.10256410 0.0019505280 -0.54373150   5.866262e-01
[64,] 0.036267748 0.02564103 0.0005348167  0.45951200   6.458665e-01
[65,] 0.100309499 0.03846154 0.0008046729  2.18029716   2.923544e-02
[66,] 0.029702206 0.01282051 0.0002624904  1.04197980   2.974210e-01
[67,] 0.052627500 0.06410256 0.0012607702 -0.32317456   7.465630e-01
[68,] 0.064076731 0.05128205 0.0010519939  0.39447801   6.932282e-01
[69,] 0.067548747 0.03846154 0.0007736300  1.04576806   2.956681e-01
[70,] 0.010752688 0.02564103 0.0005383798 -0.64165535   5.210970e-01
[71,] 0.002402356 0.01282051 0.0002658629 -0.63894290   5.228601e-01
[72,] 0.046816770 0.05128205 0.0010268471 -0.13934645   8.891764e-01
[73,] 0.041142416 0.05128205 0.0010107147 -0.31893930   7.497725e-01
[74,] 0.006984324 0.02564103 0.0005266952 -0.81293378   4.162560e-01
[75,] 0.018554918 0.05128205 0.0010508100 -1.00959192   3.126908e-01
[76,] 0.117669813 0.08974359 0.0017081266  0.67569728   4.992329e-01
[77,] 0.014813596 0.02564103 0.0005149838 -0.47712106   6.332759e-01
[78,] 0.175209043 0.07692308 0.0014878977  2.54803258   1.083324e-02
[79,] 0.064849332 0.01282051 0.0002673203  3.18220373   1.461590e-03
attr(,"cluster")
 [1] Low  Low  Low  Low  Low  Low  Low  Low  Low  Low  High Low  Low  Low  Low 
[16] Low  Low  Low  High Low  High Low  Low  Low  Low  Low  Low  Low  Low  Low 
[31] Low  High Low  High Low  Low  Low  Low  Low  High Low  Low  High High Low 
[46] High Low  High Low  Low  High High High High Low  High High Low  Low  High
[61] Low  High Low  High High Low  Low  High Low  High Low  Low  Low  Low  High
[76] Low  High Low  Low 
Levels: Low High
attr(,"gstari")
[1] FALSE
attr(,"call")
localG(x = boundary_with_accident_count$accident_count, listw = wm62_lw)
attr(,"class")
[1] "localG"

The output of the localG() function is a vector containing G or G* values, with the following attributes: - "gstari": Indicates whether the G* version of the statistic was used (TRUE or FALSE). - "call": Stores the function call. - "class": Set to "localG", identifying the object type.

The Gi statistic is represented as a Z-score, where larger values signify stronger clustering. The sign of the value indicates the type of cluster: positive values point to high-value clusters (hotspots), while negative values indicate low-value clusters (cold spots).

To merge the Gi values with their corresponding geographic data in the Hunan spatial dataframe, use the following code to join the results to the boundary_with_accident_count sf object. This allows for the spatial visualization of clusters within the geographic data.

bmr.gi <- cbind(boundary_with_accident_count, as.matrix(gi.fixed)) %>%
  rename(gstat_fixed = as.matrix.gi.fixed.)

the code chunk above actually performs three tasks. First, it convert the output vector (i.e. gi.fixed) into r matrix object by using as.matrix(). Next, cbind() is used to join bmr@data and gi.fixed matrix to produce a new SpatialPolygonDataFrame called bmr.gi. Lastly, the field name of the gi values is renamed to gstat_fixed by using rename().

We can now map the Gi values derived using the fixed-distance weight matrix.

acc_count <- qtm(boundary_with_accident_count, "accident_count")

Gimap <-tm_shape(bmr.gi) +
  tm_fill(col = "gstat_fixed", 
          style = "pretty",
          palette="-RdBu",
          title = "local Gi") +
  tm_borders(alpha = 0.5)

tmap_arrange(acc_count, Gimap, asp=1, ncol=2)

From the above plot, we can infer that ‘hot spots’ tend to be neighboring regions and likewise for the cold spots too. We see more high value (hot) clusters in the South East region of the Bangkok Metropolitan Region- Near Samut Prakan. The Central Area, near Bangkok and Nonthaburi showcase more ‘cold spots’.

Conclusion

From all our analysis, we determine that the South East region of Bangkok Metropolitan Region seems to be a hotspot for accidents and needs to be further examined in order to reduce the rate of accidents in the region.